に複数の行を結合します:これは生産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
しかし、私は1つの行にそれに参加したいです、このように:
score1 score2 score3 score4
------------------------------
3.00 4.5 1.5 NULL
ごめんなさい - 私の絵は空です(今日は遅いです)。
一時テーブルが必要ですか?
私はこれをやっている理由は、私は以下の協会持っているということです。
レビューを1 .. *スコア
ので、定期的に各スコアのために1行を生成し参加する - しかし、私がしたいです各レコードの列を持っていること、(別のテーブルへの)レコードを挿入する - あなたは私が何を意味するか知っている場合:
INSERT INTO OtherTable (ReviewId, Score1, Score2, Score3, Score4)
????
理にかなっている希望。 (彼は単に削除)@OMGポニーの回答に基づいて
EDIT
、私はこの思い付いた:
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
しかし、それはかなり醜いです。他のアイデア?
奇妙だ、私はそれが必要とされているべきではありませんので、MAXはNULLを返すサポート思ったのcuzケース:/ –
ええ、最悪の場合、上記の解決策があります。しかし私が言ったように、それは本当に醜いです。私はNULLを挿入する必要があります(0ではない)、なぜ私は奇妙な場合が必要です。 eck。さらに、私はNULLを0に変換するためにISNULLが(現実には)ISNULLを必要とするでしょう。そして、それを再びLOLのNULLに変換してください。痛いです – RPM1984