Функционал CASE

Добрый день!

case
when orders.operator_comment like '%grand%' THEN 'GRAND'
when orders.operator_comment like '%mega%' THEN 'MEGA'
when orders.operator_comment like '%mega%' and orders.operator_comment like '%grand%' THEN 'OBAGOTOVY'
ELSE 'negotov'
end

не могу понять почему не работает последнее условие. И правильно ли я прописал его. буду признателен за помощь

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Порядок условий в case

Case проверяет условия в порядке их следования до первого соответствия. Т.е. рассматривая ваш пример, при ситуации 'OBAGOTOVY' уже первое условие orders.operator_comment like '%grand%' выполнимо и до условия 'OBAGOTOVY' case просто не доходит.
Конкретно в вашем примере, достаточно поменять порядок следования условий.

case
when orders.operator_comment LIKE '%mega%' AND orders.operator_comment LIKE '%grand%' THEN 'OBAGOTOVY'
when orders.operator_comment LIKE '%grand%' THEN 'GRAND'
when orders.operator_comment LIKE '%mega%' THEN 'MEGA'
ELSE 'negotov'
end

Круто, все просто)))) спасибо

Круто, все просто)))) спасибо

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023