sql-server - T-SQL 使用 EXISTS 作为列

标签 sql-server tsql exists

我想知道是否可以在这样的列中使用 EXISTS (或类似的东西):

SELECT Column1,
       Column2,
       EXISTS (SELECT 1 FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1

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

SELECT Column1,
       Column2,
       (SELECT Count(*) FROM Table2 T2 WHERE T2.Column = T1.Column) AS IsFlag
FROM Table1

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

最佳答案

试试这个

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

关于sql-server - T-SQL 使用 EXISTS 作为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12807347/

相关文章:

sql - EXISTS 内部 CASE 内部 AGGREGATE FUNCTION

mysql - 查找其他表中不存在的记录

sql-server - 如何将表名作为存储过程的输入参数?

sql - 如何检查谁持有我想授予的锁?

sql-server - 为什么 Teradata 查询在 MS-Access 中比 SQL Server 更快

sql-server - 将文件添加到 MSSQL 数据库时如何使用相对文件路径

asp.net - 为什么在 Web 应用程序中由 Reporting Services 2005 调用时,第二个 T-SQL 查询的运行速度比第一个快得多

excel - VBA检查文件是否存在

sql-server - 从 SSIS 运行时,存储过程返回架构版本更改错误,但直接运行时则不会

sql - 创建新数据库时的最佳 ANSI 选项