【问题标题】:Multi-column IN condition from Oracle to SQL Server从 Oracle 到 SQL Server 的多列 IN 条件
【发布时间】:2023-03-04 15:33:01
【问题描述】:

在Oracle中,我可以做到

SELECT employee_id, last_name FROM employees
   WHERE (employee_id, last_name) 
      IN (SELECT employee_id, 'test' FROM employees)

我怎样才能对 SQL Server 做同样的事情?

【问题讨论】:

  • 在 oracle 中是什么意思?
  • @GiorgiNakeuri:与 IN 一样,只有一列 - 只是两列。

标签: sql sql-server


【解决方案1】:

试试这个。

使用Exists 运算符

SELECT employee_id,
       last_name
FROM   employees a
WHERE  EXISTS (SELECT employee_id,
               FROM   employees b
               WHERE  a.employee_id = b.employee_id)
       AND a.last_name = 'test' 

或使用INNER Join

SELECT employee_id,
       last_name
FROM   employees a
       JOIN employees b
         ON a.employee_id = b.employee_id
            AND a.last_name = 'test' 

或使用In 运算符

SELECT employee_id,
       last_name
FROM   employees a
WHERE  employee_id IN (SELECT employee_id,
                       FROM   employees b)
       AND a.last_name = 'test' 

【讨论】:

  • 我认为,您的解决方案可以简单地重写为select * from Employees where LastName = 'test'
  • @GiorgiNakeuri - 相信 OP 会简化他的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2011-02-27
  • 2016-04-20
  • 2015-04-17
相关资源
最近更新 更多