DECLARE @AuditTypeID BIGINT=NULL
DECLARE @ChecklistTypeID BIGINT = NULL
SELECT * FROM TmpChecklist WHERE ChecklistTypeID IN
(CASE WHEN (@AuditTypeID IS NOT NULL) THEN (select distinct ChecklistTypeID from TmpChecklist where checklistTypeID IN
(SELECT checklistTypeID FROM TmpChecklist WHERE AudittypeID=@AuditTypeID AND (@ChecklistTypeID IS NULL OR @ChecklistTypeID = '')
UNION SELECT @ChecklistTypeID))
ELSE
(SELECT DISTINCT checklistTypeID FROM TmpChecklist WHERE checklistTypeID IN (ISNULL(@checklistTypeID,checklistTypeID) ))
END)
Здесь обе переменные могут быть нулевыми, либо могут быть нулевыми, либо обе могут быть ненулевыми
Так что, если @AuditTypeID
не равно нулю, то я хочу выбрать ChecklistTypeID
на основе @AuditTypeID
, в противном случае выберите все ChecklistTypeID
(опять же, если @ChecklistTypeID
равно нулю, выберите все ChecklistTypeID
, в противном случае на основе @ChecklistTypeID
)
Я пробовал запрос выше, но что-то не так.
Как мне этого добиться?