我在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);
Run Code Online (Sandbox Code Playgroud)
我想要这个结果:
f1 f2whenFlagIs1 f2whenFlagIs0
P a b
Q c d
R e NULL
S NULL f
Run Code Online (Sandbox Code Playgroud)
已编写以下查询以获得相同的结果:
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 …Run Code Online (Sandbox Code Playgroud)