SQL Server LIMIT顶级查询

时间:2013-08-16 02:46:04

标签: sql sql-server

如何将我的热门查询限制为某个记录。

示例:

结果应该是直到col2的值为b。

 ID     col1        col2
  7       1           a
  6       2           a
  5       1           a
  4       3           b
  3       1           a
  2       4           a
  1       1           b

1 个答案:

答案 0 :(得分:1)

您可以使用ROW_NUMBER()窗口功能:

;WITH x AS
(
    SELECT col1, col2, ROW_NUMBER() OVER(ORDER BY id DESC) rn
    FROM Table1
)
SELECT col1, col2
FROM x x1
WHERE NOT EXISTS
(
    SELECT 1
    FROM x x2
    WHERE x2.rn <= x1.rn
    AND x2.col2 = 'b'
)

SQL Fiddle