2016-03-28 2 views
0
Rownum Status 
1   2 
2   1 
3   3 
4   2 
5   3 
6   1 

条件はすべてを示し、その後何status=3がない場合、レコードは、上記のシナリオでは、予想される出力は、ROWNUMの= 1になりますstatus=3の最初のレコードの前に現れ、場合2.
照会することです。row_numと列の値のいずれかに基づいてレコードを照会する方法はありますか?

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 

:したがって、現在所見

答えて

1

は、SQL Server 2012+を使用している場合を開始し、その後、あなたはORDER BY句でSUMの窓のバージョンを使用することができる場所

は私がからわからないんだけど計算されたフィールドsは、合計のStatus = 3の合計が実行されているです。クエリは、最初にの前にすべてのレコードを返します。3の値がです。

Demo here