[String(Ignore = true)]
条件是查询记录出现在Rownum Status
1 2
2 1
3 3
4 2
5 3
6 1
的第一条记录之前,在上述情况下,预期输出将是rownum = 1和2。
如果没有status=3
则显示所有内容。
我不知道从哪里开始因此目前没有发现
答案 0 :(得分:1)
如果您使用的是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
次出现的运行总计。查询返回第一次出现3
值之前的所有记录。