我遇到了一個問題,關於在表中缺少令我頭痛的行。在一個序列中排序行並填充缺失行的空位
作爲基礎數據,我有以下表:
declare @table table
(
id1 int,
id2 int,
ch char(1) not null,
val int
)
insert into @table values (1112, 121, 'A', 12)
insert into @table values (1351, 121, 'A', 13)
insert into @table values (1411, 121, 'B', 81)
insert into @table values (1312, 7, 'C', 107)
insert into @table values (1401, 2, 'A', 107)
insert into @table values (1454, 2, 'D', 107)
insert into @table values (1257, 6, 'A', 1)
insert into @table values (1269, 6, 'B', 12)
insert into @table values (1335, 6, 'C', 12)
insert into @table values (1341, 6, 'D', 5)
insert into @table values (1380, 6, 'A', 3)
輸出應該由ID2進行排序,並按照ch的固定順序,應該重複進行,直到下一個ID2開始。
順序:
'A'
'B'
'C'
'D'
如果順序或者圖案中斷,它應與空填補缺失的行,讓我得到這個結果表:
id1 id2 ch val
----------------------------
1112 121 'A' 12
NULL 121 'B' NULL
NULL 121 'C' NULL
NULL 121 'D' NULL
1351 121 'A' 13
1411 121 'B' 81
NULL 121 'C' NULL
NULL 121 'D' NULL
NULL 7 'A' NULL
NULL 7 'B' NULL
1312 7 'C' 107
NULL 7 'D' NULL
1401 2 'A' 107
NULL 2 'B' NULL
NULL 2 'C' NULL
1454 2 'D' 107
等。 ..
我在找的是一種不用迭代就能做到的方法。
我希望有人能幫助!
在此先感謝!
非常感謝您的解答和解釋!你是個天才! –