2

我写了一个从表中选择中间行的查询:

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使用浮点运算?

4

1 回答 1

2

尝试,.0黑客,

CEILING(COUNT(*) / 2.0)
于 2013-02-25T13:52:39.787 回答