2013-06-03 77 views
3

我希望ROW_Number()正常工作除非列「框」爲空。如果'box'爲空,則行號不會增加。如果爲null,則連接數據

我有一個看起來像這樣的數據...

Row Box 
1 5 
2 3 
3 1 
4 Null 
5 Null 
6 2 
7 8 
8 Null 
9 Null 

我想我的查詢拉出來,看起來像這樣的數據...

Row Box 
1 5 
2 3 
3 1 
3 Null 
3 Null 
4 2 
5 8 
5 Null 
5 Null 

我試圖避免使用一個光標,但我無法弄清楚如何讓這個工作沒有一個。

+1

行是一個實際的列名? – Paparazzi

回答

3

你可以用相關的子查詢來做到這一點。這裏有一種方法:

select (select count(box) from t t2 where t2.row <= t.row) as row, 
     box 
from t 
order by row; 

這是計算直到給定行的有效box值的數量。

在SQL Server 2012中,您可以用累積count()做到這一點:

select count(box) over (order by row) as row, box 
from t 
order by row; 

這些假設row被設置爲的問題。如果row不以這些值開始,那麼你有問題。 SQL表本質上是無序的,你需要一些列來指定排序。

+1

按行添加訂單 – Paparazzi

相關問題