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)