2015-05-07 33 views
1

我通過使用SSIS到SQL Server從XML文件導入數據。 我在數據庫中得到的結果與此類似:T-SQL合併數據

+-------+---------+---------+-------+ 
| ID | Name | Brand | Price | 
+-------+---------+---------+-------+ 
| 2  | NULL | NULL | 100 | 
| NULL | SLX  | NULL | NULL | 
| NULL | NULL | Blah | NULL | 
| NULL | NULL | NULL | 100 | 
+-------+---------+---------+-------+ 

我期望的結果將是:

+-------+---------+---------+-------+ 
| ID | Name | Brand | Price | 
+-------+---------+---------+-------+ 
| 2  | SLX  | Blah | 100 | 
+-------+---------+---------+-------+ 

有一個漂亮的解決方案,T-SQL來解決這個問題? 我已經試過SELECT MAX(ID),然後GROUP BY ID,但我仍然堅持NULL值。我也試過用MERGE,但也是失敗。 有人可以給我一個方向在哪裏進一步搜索?

+0

你可以對所有列選擇MAX。根本沒有GROUP BY。 –

+1

我假設這不是表中唯一的4行(應該是1行)。我首先建議你去SSIS並調整一下。如果你不好,沒有什麼東西能夠將這些價值聯繫在一起,所以只有以某種方式將它們聯繫起來,纔有可能。我能想到的唯一方法是你有一個額外的像row_number INT IDENTITY(1,1)列。如果我有這個,我可以給你寫一個解決方案。 – Stephan

+0

如果在導入步驟中無法解決問題,那麼我建議在將數據存儲在永久表中之前,使用提供的解決方案@JohnnyBell轉換數據。 –

回答