Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Cláusula SQL Server - IN com vários campos


Não do jeito que você postou. Você só pode retornar um único campo ou tipo para IN trabalhar.

Do MSDN (IN ):
test_expression [ NOT ] IN 
    ( subquery | expression [ ,...n ]
    ) 

subquery - Is a subquery that has a result set of one column. 
           This column must have the same data type as test_expression.

expression[ ,... n ] - Is a list of expressions to test for a match. 
                       All expressions must be of the same type as 
                       test_expression.

Em vez de IN , você pode usar um JOIN usando os dois campos:
SELECT U.* 
FROM user U
  INNER JOIN userType UT
    ON U.code = UT.code
    AND U.userType = UT.userType