我有這個T-SQL(簡體):T-SQL結合多個列數分爲單列
select 3.00 as score1, null as score2, null as score3, null as score4
union all
select null as score1, 4.5 as score2, 1.5 as score3, null as score4
這主要生產:
score1 score2 score3 score4
------------------------------
3.00 NULL NULL NULL
NULL 4.5 1.5 NULL
,但我想它加入到一行,像這樣:
score1 score2 score3 score4
------------------------------
3.00 4.5 1.5 NULL
對不起 - 即時繪圖空白(這是晚了一天)。
我需要臨時表嗎?
原因我做這是我有以下的關聯:
評論1 .. *成績
所以常規連接產生1行中每個分數 - 但我想插入一條記錄(到另一臺),有每個記錄的列 - 如果你知道我的意思:
INSERT INTO OtherTable (ReviewId, Score1, Score2, Score3, Score4)
????
希望是有道理的。
編輯
基於@OMG小馬的回答(這是他剛刪除),我想出了這個:
SELECT CASE MAX(x.score1) WHEN 0 THEN NULL ELSE MAX(x.score1) END AS score4
CASE MAX(x.score2) WHEN 0 THEN NULL ELSE MAX(x.score2) END AS score4
CASE MAX(x.score3) WHEN 0 THEN NULL ELSE MAX(x.score3) END AS score4
CASE MAX(x.score4) WHEN 0 THEN NULL ELSE MAX(x.score4) END AS score4
FROM (select 3.00 as score1, 0 as score2, 0 as score3, 0 as score4
union all
select 0 as score1, 4.5 as score2, 1.5 as score3, 0 as score4) x
但是它是相當難看。任何其他想法?
這是奇怪的,因爲我覺得最大支持返回NULL,所以應該不會有必要的案例:/ – 2010-12-16 06:19:09
是的最壞的情況下,我有一個解決方案上面。但正如我所說這真的很難看。我需要插入NULL(不是0),這就是爲什麼我需要蹩腳的情況。 ECK。更重要的是我需要ISNULL的主題(實際上)將NULL轉換爲0,然後將其轉換爲NULL再次插入,lol。痛苦的 – RPM1984 2010-12-16 06:21:06