私はTESTテーブルのサンプルデータを次ていますサブクエリを避ける方法はありますか?
CREATE TABLE TEST(
f1 varchar(50) NULL,
f2 varchar(50) NULL,
flag int NULL);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('P','a',1);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('P','b',0);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('Q','c',1);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('Q','d',0);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('R','e',1);
INSERT INTO [test]([f1],[f2],[flag]) VALUES('S','f',0);
私はこの結果をしたい:
f1 f2whenFlagIs1 f2whenFlagIs0
P a b
Q c d
R e NULL
S NULL f
次のクエリは、同じ結果を持つように書かれています
SELECT isnull(test1.f1,test0.f1) f1, test1.f2 f2whenFlagIs1 , test0.f2 AS f2whenFlagIs0
FROM
(select * from test where flag = 1) AS test1 full JOIN
(select * from test where flag = 0) AS test0
ON test1.f1 = test0.f1
ですサブクエリを避ける方法はありますか?
+1サンプルデータ*と*望ましい結果!ほとんどの質問はどちらも提供していません。どちらも気にしないでください。 –
@abdkok:( 'f1'、' flag')列にPRIMARY KEY/UNIQUE制約/一意索引がありますか? –
この構文はSQL Serverであるため、Oracleタグを削除しました。 –