是否有SQL函数返回三个中间值?
例如,假设我有一张桌子,其中有三辆车的人,按AutoMaker的字母顺序排序。
John: Ford
John: Honda
John: VW
然后
MIN(AutoMaker) returns Ford.
MAX(AutoMaker) returns VW.
是否有类似的SQL函数会返回本田?
我正在使用MS Access和Oracle。
谢谢。
答案 0 :(得分:2)
简短回答:不,这太具体了。
更长的回答:这太具体了。因此,你所说的“中间”实际上是第二个记录。但如果你有5条记录,它将是第三条记录,依此类推。如果您在实践中需要它,只需为每一行(Oracle,Access)分配一个行号,然后选择((n + 1)/ 2)nd行(WHERE row_number =(n +) 1)/ 2)。
PS - 如果你有4行,这是中间行? :)
答案 1 :(得分:0)
查询可能是这样的
select row_id, Field1
FROM tbl
where row_id = (select cInt(count(Field1)/2) from tbl)
访问中的问题是你没有row_number,你需要将row_id添加到表中,然后填充row_id 1,2,3,4(在Field1上排序)