sql – 返回特定范围之间的行,并带有一个select语句
发布时间:2020-12-12 08:38:08 所属栏目:MsSql教程 来源:网络整理
导读:我正在寻找一些这样的表达(使用SQL Server 2008) SELECT TOP 10 columName FROM tableName 但是,而不是我需要10到20之间的值.我想知道是否有一种方法只使用一个SELECT语句. 例如这是没用的: SELECT columName FROM(SELECT ROW_NUMBER() OVER(ORDER BY someId
我正在寻找一些这样的表达(使用SQL Server 2008)
SELECT TOP 10 columName FROM tableName 但是,而不是我需要10到20之间的值.我想知道是否有一种方法只使用一个SELECT语句. 例如这是没用的: SELECT columName FROM (SELECT ROW_NUMBER() OVER(ORDER BY someId) AS RowNum,* FROM tableName) AS alias WHERE RowNum BETWEEN 10 AND 20 因为选择内部的括号已经返回所有的结果,我期待避免,由于性能. 解决方法row_number有一个技巧,它不涉及排序所有的行.尝试这个: SELECT columName FROM (SELECT ROW_NUMBER() OVER(ORDER BY (select NULL as noorder)) AS RowNum,* FROM tableName ) as alias WHERE RowNum BETWEEN 10 AND 20 你不能按顺序使用常数.但是,您可以使用一个计算为常量的表达式. SQL Server可以识别这一点,只返回遇到的行,并正确枚举. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |