我我很困惑你的輸出。 在我看來,代碼= 113的行的'number2'列的值來自'Number'列。 對於代碼爲116的行,列'number2'來自'name'列。
我已經開始寫SQL幫助:
DECLARE @temp table (code INT, Number char(2), Name char(4));
INSERT INTO @temp (code,Number, Name) VALUES (111, 'a2', 'abc')
INSERT INTO @temp (code,Number, Name) VALUES (112, 'b7', 'abc1')
INSERT INTO @temp (code,Number, Name) VALUES (113, 'a3', 'abc2')
INSERT INTO @temp (code,Number, Name) VALUES (113, 'c5', 'abc2')
INSERT INTO @temp (code,Number, Name) VALUES (114, 'd1', 'abc4')
INSERT INTO @temp (code,Number, Name) VALUES (115, 's6', 'abc3')
INSERT INTO @temp (code,Number, Name) VALUES (116, 's9', 'a4')
INSERT INTO @temp (code,Number, Name) VALUES (116, 's9', 'a5')
SELECT T1.code, T1.Number, T2.Number, T1.Name
FROM @temp T1
LEFT JOIN @temp T2 ON T1.code = T2.code AND T1.Number=T2.Number AND T1.Name <> T2.Name
WHERE T1.Number = (SELECT MIN(Number) FROM @temp T3 WHERE T3.code = T1.code)
AND T1.Name = (SELECT MIN(Name) FROM @temp T4 WHERE T4.code = T1.code);
哪個輸出是罰款除外一行代碼113 ... 你確定你想要的輸出???
問候, 中號
所以,你要'number2'包含交替來自'Number'和值'name',這取決於被複制?這將是非常不尋常的事情。 – 2011-04-11 12:22:44
當代碼重複但數字和名稱不同時會發生什麼? – Lamak 2011-04-11 13:09:47
你應該閱讀一個名爲[Self Joins]的主題(http://www.sqltutorial.org/sqlselfjoin.aspx)。您可以通過將[Union](http://msdn.microsoft.com/en-us/library/ms180026.aspx)函數與Self Joins結合使用來完成您想要的操作。告訴我們你到目前爲止所嘗試過的。 – 2011-04-11 13:16:59