作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OFFSET FETCH
不支持与 TOP (n) WITH TIES
选项相同的逻辑,该选项通过返回所有关系来确保确定性。
是否有任何解决方法可以将 OFFSET FETCH
和 WITH TIES
结合在一起?
使用示例数据创建语句
CREATE TABLE #tbl(Id INT, Name VARCHAR(10))
INSERT #tbl
SELECT 1, 'a' UNION ALL
SELECT 1, 'a' UNION ALL
SELECT 2, 'b' UNION ALL
SELECT 2, 'b' UNION ALL
SELECT 2, 'b' UNION ALL
SELECT 3, 'c' UNION ALL
SELECT 3, 'c' UNION ALL
SELECT 3, 'c'
<小时/>
顶部
选择前 3 个 * FROM #tbl ORDER BY Id
Id Name
1 a
1 a
2 b
<小时/>
排名前 n 的领带
选择排名前 3 位的 TIES * FROM #tbl ORDER BY Id
Id Name
1 a
1 a
2 b
2 b
2 b
<小时/>
偏移获取
SELECT *
FROM #tbl
ORDER BY Id
OFFSET 0 ROWS
FETCH NEXT 3 ROWS ONLY
Id Name
1 a
1 a
2 b
也许我们需要使用Ranking函数来实现这个?
最佳答案
只需将它们一起使用,无需在 CTE 内使用 FETCH 语句
;WITH cte AS
(
SELECT Id, Name
FROM #tbl
ORDER BY Id
OFFSET 0 ROWS
)
SELECT TOP 3 WITH TIES *
FROM cte
ORDER BY Id
偏移量为 3 SQLFiddle 的示例
;WITH cte AS
(
SELECT Id, Name
FROM #tbl
ORDER BY Id
OFFSET 3 ROWS
)
SELECT TOP 3 WITH TIES *
FROM cte
ORDER BY Id
关于sql - 如何将OFFSET/FETCH 和WITH TIES 结合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31510742/
我是一名优秀的程序员,十分优秀!