我需要帮助对where
存储过程的子句进行编码,并传递以下输入参数:
DECLARE @UID_CUSTOMER int = 7
, @BOOL_HAS_DEFECT bit = 0
, @BOOL_HAS_INSPECTION bit = 0
, @DTTM_TRIP_START datetime = '2024-01-01'
, @DTTM_TRIP_END datetime = '2024-06-01'
;
在 T-SQL 查询中,我将使用以下WHERE
子句:
WHERE ... other conditions ...
AND (PTI.UID_PTINSPECTION IS NOT NULL)
AND (TMD.UID_TMDEFECT IS NOT NULL);
但是,我想使用入站参数,@BOOL_HAS_INSPECTION
如下所示:
AND (PTI.UID_PTINSPECTION (CASE WHEN @BOOL_HAS_INSPECTION = 1
THEN (IS NOT NULL)
ELSE (IS NULL) END))
此代码片段无效。
问题:如何使用@BOOL_HAS_INSPECTION
来正确指定IS NOT NULL
和/或IS NULL
?
这会起作用,但可能有更简洁的方法。