2
ストアドプロシージャに渡すパラメータに基づいてテーブルを結合することを変更したいと思います。渡すパラメータに基づいて、結合が行われます。SQL Serverで条件付きのJOIN
どうすれば実現できますか?
ストアドプロシージャに渡すパラメータに基づいてテーブルを結合することを変更したいと思います。渡すパラメータに基づいて、結合が行われます。SQL Serverで条件付きのJOIN
どうすれば実現できますか?
あなたの条件に基づいて別の列に参加したい場合は、これを試して、この
SELECT *
FROM tblA A
JOIN tblB B
ON A.col1 =
CASE WHEN <any condition> THEN B.col1
END
を使用しています。私は入力パラメータに基づいて異なるテーブルから値を選択する必要があると思います。
DECLARE @tmpTable1 TABLE(ID INT,Name VARCHAR(5))
DECLARE @tmpTable2 TABLE(ID INT,Value INT)
DECLARE @tmpTable3 TABLE(ID INT,Value INT)
DECLARE @vchTableType VARCHAR(5) = '2'
-- Possible values 2 fro table2 and 3 for table 3
INSERT INTO @tmpTable1 VALUES
(1,'A'),
(2,'B'),
(3,'C'),
(4,'D');
INSERT INTO @tmpTable2 VALUES
(1,100),
(2,200),
(3,300),
(4,400);
INSERT INTO @tmpTable3 VALUES
(1,10),
(2,20),
(3,30),
(4,40);
SELECT
T1.ID
,T1.ID
,CASE @vchTableType WHEN '2' THEN T2.Value WHEN '3' THEN T3.Value ELSE -1 END Column1
FROM @tmpTable1 T1
LEFT OUTER JOIN @tmpTable2 T2
ON T1.ID = T2.ID
LEFT OUTER JOIN @tmpTable3 T3
ON T1.ID = T3.ID
JOINとはどのように違うのですか?別のテーブルまたは(1つ以上の)異なるフィールドに参加しますか? – deroby