IN в Microsoft SQL Server работает только с одним столбцом, т.е. Вы можете написать только X IN (...)
, но никогда ничего, кроме X,Y IN (...)
.
Есть два способа справиться с этим, в зависимости от ваших данных:
- Объединение с подзапросом
- Использование EXISTS
Чтобы присоединиться, сделайте это:
select emp_id
from employee
inner join (select emp_id,emp_org from employee) as x
on employee.emp_id = x.emp_id and employee.emp_org = x.emp_org
Однако ваш пример немного паршивый, поскольку вы используете ту же таблицу.
Чтобы использовать EXISTS, сделайте следующее:
select emp_id
from employee
where exists (
select emp_id,emp_org from employee e2
where e2.emp_id = employee.emp_id and e2.emp_org = employee.emp_org)
Это так же, как и объединение, связывает основную таблицу с таблицей «подзапрос», но в то время как объединение будет производить повторяющиеся строки, если «подзапрос» вызывает несколько попаданий, предложение EXISTS не .