2013-03-08 69 views
1

我是sql server 2012的新手,想了解如何使用t-sql創建以下輸出。有很多俱樂部號碼,所以必須有一個循環或光標。請幫忙!!t-sql查詢填充空值

club_number name            number 
---------- -------------------------------------------------- ----------- 
355292  NULL            NULL 
NULL  Giviton Mbunge          355308 
NULL  Etero Aaron          355317 
NULL  Evason Banda          355326 
NULL  Kachibobo Batoni         355335 
NULL  Kashamba Nkhani         355344 
355353  NULL            NULL 
NULL  Daniel Banda          355362 
NULL  James Aaron          355371 
NULL  Amson Kamanga          355380 
NULL  Gostino George          355399 
355405  NULL            NULL 
NULL  Yohane Zimba          355414 
NULL  Haward M.Chilembwe         355423 
NULL  Zikiele Blangete         355432 
355441  NULL            NULL 

結果:我想看到如下上面的表格,該查詢能做到嗎?請幫助

club_number name            number 
---------- -------------------------------------------------- ----------- 
355292  NULL            NULL 
355292  Giviton Mbunge          355308 
355292  Etero Aaron          355317 
355292  Evason Banda          355326 
355292  Kachibobo Batoni         355335 
355292  Kashamba Nkhani         355344 
355353  NULL            NULL 
355353  Daniel Banda          355362 
355353  James Aaron          355371 
355353  Amson Kamanga          355380 
355353  Gostino George          355399 
355405  NULL            NULL 
355405  Yohane Zimba          355414 
355405  Haward M.Chilembwe         355423 
355405  Zikiele Blangete         355432 
355441  NULL            NULL 
+2

您所描述的映射依賴於該行所產生的順序;但是你沒有描述如何獲得這種排序。 – 2013-03-08 15:24:09

+0

@Pieter如果你是COALESCE(number,club_number)'(或相反)它是按順序的。 – 2013-03-08 15:59:43

+0

@Aaron:是的;但OP應該學會提供完整的問題描述。 OP正在讓我們「猜測」這個關鍵事實。 – 2013-03-08 16:06:55

回答

5
SELECT club_number = MAX(club_number) OVER 
    (
     ORDER BY COALESCE(club_number, number) 
     ROWS UNBOUNDED PRECEDING 
    ), 
    name, number 
FROM dbo.your_table 
ORDER BY club_number; 
+0

真棒!!!!!!!謝謝Aaron。 – user2148689 2013-03-08 16:13:44

+1

@ user2148689沒問題。 PS沒有循環,沒有光標。不要跳到「必須有循環或光標」的結論。 – 2013-03-08 18:34:13

+0

很酷。再次感謝@ user2148689。 – user2148689 2013-03-15 08:06:03