选择中间行只会失败一行

时间:2013-02-25 13:51:39

标签: sql sql-server math

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

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

1 个答案:

答案 0 :(得分:2)

尝试.0黑客,

CEILING(COUNT(*) / 2.0)