sql - 选择中间行失败,只有一行

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

最佳答案

尝试一下.0 hack,

CEILING(COUNT(*) / 2.0)

关于sql - 选择中间行失败,只有一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15068537/

相关文章:

php - 选择中使用一个字段时模型不返回值

sql - 如何在 firefox quantum(浏览器版本 57)中安装 sqlite 管理器插件

php - MYSQL/PHP 中的数学

java - 如何对数学运算字符串进行代数展开

php - 在 PHP 脚本中保留 SQL 中的值? (更新声明)

sql - Oracle DML table_reference 是否存在解析器?

SQL 记录出现次数

java - Sprite 椭圆运动

sql-server - 在 SQL Server 2005 中显示事件 session

sql-server - 请解释计算列的SET选项要求