Tentando encontrar uma maneira de passar um terceiro valor dentro de um campo 'bit'. Eu gostaria de poder utilizar NULL como um valor pesquisável. Como em 'True', 'False' ou 'NULL', o único problema é que não tenho certeza de como fazer isso. Meus pensamentos iniciais foram algum tipo de ramificação 'if' dentro da instrução, mas não parece permitir esse tipo de sintaxe. Aqui está minha cláusula WHERE atual. Estou tentando possibilitar que [ERROR_FREE] seja registrado como '0', '1' ou 'NULL' com base em uma variável passada do meu aplicativo C#.
WHERE [TBL_OUTBOUND_REVIEW].[ACTIVE_DIRECTORY] LIKE @UserName AND
CONVERT(date, [TBL_OUTBOUND_REVIEW].[DATE_SUBMITTED]) LIKE @DateSubmitted AND
[TBL_OUTBOUND_REVIEW].[ERROR_FREE] = @Status AND
[TBL_OUTBOUND_REVIEW].[LOCATION] LIKE @Location AND
[TBL_OUTBOUND].[UDF_0] LIKE @UDF0
ORDER BY [TBL_OUTBOUND_REVIEW].[DATE_SUBMITTED] DESC;
Mais ou menos eu gostaria de fazer isso:
WHERE [TBL_OUTBOUND_REVIEW].[ACTIVE_DIRECTORY] LIKE @UserName AND
CONVERT(date, [TBL_OUTBOUND_REVIEW].[DATE_SUBMITTED]) LIKE @DateSubmitted AND
IF @Status IS NULL
[TBL_OUTBOUND_REVIEW].[ERROR_FREE] IS NULL AND
ELSE
[TBL_OUTBOUND_REVIEW].[ERROR_FREE] = @Status AND
[TBL_OUTBOUND_REVIEW].[LOCATION] LIKE @Location AND
[TBL_OUTBOUND].[UDF_0] LIKE @UDF0
ORDER BY [TBL_OUTBOUND_REVIEW].[DATE_SUBMITTED] DESC;
... Embora eu saiba que isso não funciona. :\