Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заявка SQL Server с IN (NULL) не работи

Единствените валидни операции за сравнение с NULL стойностите са IS NULL или IS NOT NULL , други винаги връщат false (всъщност - Неизвестно, вижте коментара на @Damien_The_Unbeliever)

Така че опитайте следното

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извикате съхранена процедура с помощта на PHP и SQL Server 2008

  2. SQL Joins:Бъдещето на стандарта SQL ANSI (къде срещу join)?

  3. SQL вътрешно присъединяване към нулеви стойности

  4. SQL Server 2008 - АКО НЕ СЪЩЕСТВУВА, ВМЪКНЕТЕ ДРУГА АКТУАЛИЗАЦИЯ

  5. Изпращането на имейл през SQL Server е НЕУСПЕШНО