sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server - Cláusula IN con múltiples campos

No de la forma que has publicado. Solo puede devolver un único campo o tipo para IN para trabajar.

De 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.

En lugar de IN , podría usar un JOIN usando los dos campos:

SELECT U.* 
FROM user U
  INNER JOIN userType UT
    ON U.code = UT.code
    AND U.userType = UT.userType