假設我使用int Page,int Section和int ID標識字段創建一個表,其中頁面字段的範圍爲1到8,部分字段的範圍爲1到30。現在讓我們說,兩個記錄有重複的頁面和部分。我怎麼能重新編號這兩個記錄,以便頁面和部分編號的順序是連續的?簡單SQL:如何計算集合中重複項的唯一連續數字?
select page, section
from #fun
group by page, section having count(*) > 1
示出了重複:
page 1 section 3
page 2 section 3
頁面1和部分4和第2頁第4丟失。有沒有一種方法不使用遊標來查找和重新編號SQL 2000中不支持Row_Number()的位置?
這ROWNUM下面的行程產生相同數量作爲部分:
select page, section,
(select count(*) + 1
from #fun b
where b.page = a.page and b.section < a.section) as rownum
from #fun a
我可以創建中具有值的1到100樞軸表,但我會加入反對?
我想要做的是這樣的:
update p set section = (expression that gets 4)
from #fun p
where (expression that identifies duplicate sections by page)
重複總是每頁最高編號的部分?我們可以肯定,例如,數據集中沒有(page = 1,section = 4)?如果重複的「部分」是30,我們是否需要增加「頁面」? – pilcrow 2011-05-19 04:06:10
+1,想知道是否有辦法做到這一點沒有光標,沒有'ROW_NUMBER' – AakashM 2011-05-19 06:51:24