私はこのクエリを持っています:
INSERT INTO #t1 (VALUE1, VALUE2)
SELECT
CASE
WHEN EXISTS(SELECT * FROM T2)
THEN SELECT VALUE1, VALUE2 FROM T2
END
これは機能しません。「INSERTステートメントの選択リストには、挿入リストよりも少ない項目が含まれています。SELECT値の数はINSERT列の数と一致する必要があります。」
代わりに私は使用する必要があります:
INSERT INTO #t1 (VALUE1, VALUE2)
SELECT
CASE
WHEN EXISTS(SELECT * FROM T2)
THEN SELECT VALUE1 FROM T2
END
CASE
WHEN EXISTS(SELECT * FROM T2)
THEN SELECT VALUE2 FROM T2
END
ただし、これによりパフォーマンスが低下します。それを適切に行うための解決策はありますか?単一のCASE内で、2番目のテーブルt2の単一クエリの恩恵を受ける。