我编写了一个查询,从表中选择中间行:
with records as(select row_number() over(order by someKey) as 'row', *
from MyTable)
select *
from records
where row=(select (count(*)/2) from records)
除了 MyTable
只有一行(返回空数据集)的情况之外,此方法工作正常。我认为这是因为在这种特殊情况下,1/2 被截断为零。所以我尝试了 ceiling( count(*)/2 ) ,但得到了相同的结果。如何让 count(*)/2
使用浮点运算?
最佳答案
尝试一下.0
hack,
CEILING(COUNT(*) / 2.0)
关于sql - 选择中间行失败,只有一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15068537/