Las únicas operaciones de comparación válidas con NULL
los valores son IS NULL
o IS NOT NULL
, otros siempre devuelven falso (en realidad - Desconocido, vea el comentario de @Damien_The_Unbeliever)
Por lo tanto, intente lo siguiente
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)