Как использовать <> (Не равно) в W, ЧТОБЫ ПОСТАВИТЬ НЕ РАВНО В СЛУЧАЕ ЗАЯВЛЕНИЯ

0

Я использую оператор CASE в SQL, и я пытаюсь использовать инструкцию <> в THEN. Но я получаю сообщение об ошибке, когда я использую инструкцию <> в THEN.
Вот мой код SQL,

DECLARE @VAR CHAR(50) = 'SAMPLE'
SELECT * FROM [DB]
WHERE acct LIKE CASE WHEN @VAR = 'SAMPLE' THEN '88%' WHEN @VAR = 'SAMPLE2' THEN <> '88%' ELSE '%' END

Как это исправить?

  • 0
    Выражение
Теги:

2 ответа

1
Лучший ответ

Я бы перефразировал это как:

SELECT *
FROM [DB]
WHERE
    (@VAR = 'SAMPLE'  AND acct LIKE '88%')     OR
    (@VAR = 'SAMPLE2' AND acct NOT LIKE '88%') OR
    (@VAR NOT IN ('SAMPLE', 'SAMPLE2'))

Обратите внимание на третье условие в WHERE, соответствующее условию WHERE acct LIKE '%' else вашего исходного выражения CASE. То есть, если @VAR не является SAMPLE или SAMPLE2, то это само по себе соответствует записи.

  • 1
    третье условие означает выбрать все.
1
DECLARE @VAR CHAR(50) = 'SAMPLE'
SELECT * FROM [DB]
WHERE (acct LIKE '88%' AND @VAR = 'SAMPLE')
      OR
      (acct NOT LIKE '88%' AND @VAR = 'SAMPLE2')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню