Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server - Clause IN avec plusieurs champs

Pas la façon dont vous avez posté. Vous ne pouvez renvoyer qu'un seul champ ou type pour IN travailler.

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

Au lieu de IN , vous pouvez utiliser un JOIN en utilisant les deux champs :

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