T-SQL使用EXISTS作为列

And*_*cik 12 t-sql sql-server exists

我想知道我是否可以在列中使用EXISTS(或类似的东西),如下所示:

SELECT Column1,
       Column2,
       EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1
Run Code Online (Sandbox Code Playgroud)

我知道我可以用Count()做类似的事情

SELECT Column1,
       Column2,
       (SELECT Count(*) FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1
Run Code Online (Sandbox Code Playgroud)

但是当Table2很大时,这可能不是很有效

SQL*_*ace 17

试试这个

SELECT Column1,
       Column2,
       CASE WHEN EXISTS (SELECT 1 FROM Table2 T2 
       WHERE T2.Column = T1.Column) then 1 ELSE 0 END AS IsFlag
FROM Table1
Run Code Online (Sandbox Code Playgroud)


Lou*_*cci 7

CASE 
    WHEN 
        EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) 
    THEN 1 
    ELSE 0 
END AS IsFlag
Run Code Online (Sandbox Code Playgroud)