sql-server - SQL WHERE.. IN 子句多列

标签 sql-server

我需要在 SQL Server 中实现以下查询:

select *
from table1
WHERE  (CM_PLAN_ID,Individual_ID)
IN
(
 Select CM_PLAN_ID, Individual_ID
 From CRM_VCM_CURRENT_LEAD_STATUS
 Where Lead_Key = :_Lead_Key
)

但是 WHERE..IN 子句只允许 1 列。如何将 2 列或更多列与另一个内部 SELECT 进行比较?

最佳答案

您需要使用 WHERE EXISTS 语法。

SELECT *
FROM table1
WHERE EXISTS (SELECT *
              FROM table2
              WHERE Lead_Key = @Lead_Key
                        AND table1.CM_PLAN_ID = table2.CM_PLAN_ID
                        AND table1.Individual_ID = table2.Individual_ID)

关于sql-server - SQL WHERE.. IN 子句多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136380/

相关文章:

c# - 性能: Lots of queries or lots of processing?

sql - 当 IN 子句有子查询时,为什么 SQL Server 执行群集扫描?

c# - 调用运行时间长的存储过程

sql - 从同一台服务器访问另一个数据库?

c# - SQL/C# : DataTable to stored procedure (INSERT from user-defined table type) - Converting error

c# - SQL 超时和查询性能

sql-server - 查找SQL Server 2012升级的过时代码

php - 如何将字符串插入数据库表中的不同列?

asp.net - SQL Server : How to select multiple columns with 1 column being distinct?

sql - 如何查询单个 SQL 列并仅获取字符串的特定部分