ПРИМЕР, ГДЕ ОЗНАКОМИТЬСЯ SQL - PullRequest
1 голос
/ 09 мая 2019

У меня есть определенная проверка в моем SQL-запросе.

WHERE USER_ACTIVE = 'Y'

Но я хочу, чтобы эта проверка появлялась только тогда, когда мой FLAG установлен на TRUE.

Например, когда FLAG установлен в true, проверьте столбец user_active. если FLAG имеет значение false, продолжить без проверки.

попробовал ниже, но я думаю, что это невозможно

WHERE CASE WHEN FLAG = 'TRUE' then USER_ACTIVE = 'Y' else ' ' END

Какая-нибудь реко?

Спасибо, И.А.!

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

Логика примерно такая:

WHERE USER_ACTIVE = 'Y' OR @FLAG <> 'TRUE'
0 голосов
/ 09 мая 2019

Вы также можете использовать CASE с WHERE.Просто чтобы указать, оператор CASE только назначает значения на основе условий.Итак, вам нужно сделать сравнения после того, как назначение сделано.Попробуйте что-то вроде этого:

WHERE (CASE WHEN FLAG = 'TRUE' then USER_ACTIVE else ' ' END) = 'Y'
...