Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri SQL Server dengan IN (NULL) tidak berfungsi

Satu-satunya operasi perbandingan yang valid dengan NULL nilainya adalah IS NULL atau IS NOT NULL , yang lain selalu mengembalikan false (sebenarnya - Tidak diketahui, lihat komentar @Damien_The_Unbeliever)

Jadi, coba yang berikut

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. CONVERT() vs TRY_CONVERT di SQL Server:Apa Bedanya?

  2. T-sql Setel Ulang Nomor Baris pada Perubahan Bidang

  3. Cara membagi nilai yang dipisahkan koma ke kolom

  4. Cara paling sederhana untuk melakukan self-join rekursif?

  5. Temukan kolom yang hanya berisi nol