Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Abfrage von SQL Server mit IN (NULL) funktioniert nicht

Die einzigen gültigen Vergleichsoperationen mit NULL Werte sind IS NULL oder IS NOT NULL , andere geben immer false zurück (eigentlich - Unbekannt, siehe den Kommentar von @Damien_The_Unbeliever)

Versuchen Sie also Folgendes

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)