sql >> Databasteknik >  >> RDS >> Sqlserver

Fråga SQL Server med IN (NULL) fungerar inte

De enda giltiga jämförelseoperationerna med NULL värden är IS NULL eller IS NOT NULL , andra returnerar alltid falskt (faktiskt - Okänd, se @Damien_The_Unbelievers kommentar)

Så prova följande

CREATE TYPE [dbo].[BitType] AS TABLE(
    [B] [tinyint] NOT NULL
)
GO
declare @theBitTypeTable BitType

insert @theBitTypeTable
VALUES(0), (2 /* instead of NULL*/)

SELECT something FROM theTable WHERE IsNull(cast(item as tinyint), 2) IN (select B from @theBitTypeTable)


  1. FEL:underfrågan i FROM kan inte referera till andra relationer på samma frågenivå

  2. Exportera enorm databas från Amazon RDS till lokal mysql

  3. Drop Column från Large Table

  4. Konstruera kapslad objektgraf från SQL har många relationer