sql >> Databáze >  >> RDS >> Sqlserver

Dotaz SQL Server s IN (NULL) nefunguje

Jediné platné porovnávací operace s NULL hodnoty jsou IS NULL nebo IS NOT NULL , ostatní vždy vrátí false (ve skutečnosti - Neznámé, viz komentář @Damien_The_Unbeliever's)

Zkuste tedy následující

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. Spojení výsledku dvou dotazů mysql

  2. mysqldump Chyba 1045 Přístup odepřen navzdory správným heslům atd

  3. Konverze REGEXP_LIKE v SQL Server T-SQL

  4. MySQL:Jaký je rozdíl mezi float a double?