我写了一个从表中选择中间行的查询:
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
使用浮点运算?