sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server - IN-klausul med flera fält

Inte som du har skrivit. Du kan bara returnera ett enda fält eller typ för IN att arbeta.

Från 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.

Istället för IN , kan du använda en JOIN med de två fälten:

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


  1. MySql-bitkolumner returnerar konstigt stort antal i PHP 7.1 (inte i tidigare versioner)

  2. Inkludera tabeller och scheman när du listar identitetskolumnerna i en SQL Server-databas

  3. MySQL char vs. int

  4. T-SQL:Välja kolumn baserat på MAX(Annan kolumn)