0
Rownum Status
1 2
2 1
3 3
4 2
5 3
6 1
條件是查詢記錄status=3
的第一個記錄,其在上述方案中的預期輸出將是ROWNUM = 1和2。
在這種情況下,如果沒有status=3
然後顯示一切之前出現。如何查詢基於row_num和其中一個列值的記錄?
我不知道從哪裏開始,因此目前還沒有發現
Rownum Status
1 2
2 1
3 3
4 2
5 3
6 1
條件是查詢記錄status=3
的第一個記錄,其在上述方案中的預期輸出將是ROWNUM = 1和2。
在這種情況下,如果沒有status=3
然後顯示一切之前出現。如何查詢基於row_num和其中一個列值的記錄?
我不知道從哪裏開始,因此目前還沒有發現
如果您正在使用SQL Server 2012+,那麼你可以使用的SUM
窗口版本與ORDER BY
條款:
SELECT Rownum, Status
FROM (
SELECT Rownum, Status,
SUM(CASE WHEN Status = 3 THEN 1 ELSE 0 END)
OVER
(ORDER BY Rownum) AS s
FROM mytable) t
WHERE t.s = 0
計算字段s
是運行總數的Status = 3
次出現次數。查詢返回第一個值值之前的所有記錄。