#sql #sql-server #case #where-clause #sql-null
#sql #sql-сервер #случай #where-предложение #sql-null
Вопрос:
То, что я пытаюсь сделать, основано на значении параметра, измените предложение WHERE. Я пытался использовать выражение CASE, но, понимая, что пытаюсь использовать его для цели, для которой он не предназначался. Вот моя попытка:
WHERE CASE WHEN @active = 1 THEN vp.date_installed IS NOT NULL AND vp.date_removed IS NULL
WHEN @active = 0 THEN vp.date_removed IS NOT NULL
END
Конечно, проблема здесь заключается в попытке использовать THEN для выполнения помимо простого извлечения значения. Итак, как мне поступить с этим?
Ответ №1:
Вместо этого я бы рекомендовал логическую логику:
WHERE
(@active = 1 AND vp.date_installed IS NOT NULL AND vp.date_removed IS NULL)
OR (@active = 0 AND vp.date_removed IS NOT NULL)
Комментарии:
1. Тьфу. Конечно. Я ненавижу, когда я пропускаю такие простые вещи. Спасибо! лол