小编abd*_*kok的帖子

有没有办法避免子查询?

我在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)

sql-server pivot subquery query-performance

7
推荐指数
1
解决办法
132
查看次数

标签 统计

pivot ×1

query-performance ×1

sql-server ×1

subquery ×1