这是我现有 SQL 查询的结构:
SELECT * FROM (
SELECT *, 'A' AS Status FROM Table1
WHERE Field1 NOT IN
(
SELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
)
UNION
SELECT *, 'B' AS Status FROM Table1
WHERE Field1 IN
(
SELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
)
) AS Result
在这里,我从表中选择两组数据并为该列分配两个不同的值Status
(A 和 B),并将 Union 都设置为一个作为 Result。
这种方法的问题是,它需要复制内部选择查询SELECT Field1 FROM Table2 WHERE Field 1 = 'val' AND ...
(我原来的 sql 查询比上面显示的要复杂一些)
如何将其重写为单个 Select 查询?有没有可能?