#sql #oracle #case
#sql #Oracle #case
Вопрос:
У меня есть основной вопрос: когда вы используете CASE с несколькими значениями, я могу использовать ИЛИ, но мне всегда приходится повторять имя столбца = или есть более простое решение, см. Пример ниже с номерами телефонов. Спасибо за ваши советы.
-- Channel Dial
CASE
WHEN FIS.TARGET_ADDRESS = ' 3222011111' OR FIS.TARGET_ADDRESS = ' 3222018181' THEN 'BCC'
WHEN FIS.TARGET_ADDRESS = ' 3222012345' THEN 'MAIN'
WHEN FIS.TARGET_ADDRESS = '3222785120' OR FIS.TARGET_ADDRESS = ' 3222785121' THEN 'Eshipper'
ELSE 'OTHER'
END AS "CHANNEL_DIAL",
Ответ №1:
Ваше CASE..WHEN
выражение можно упростить, используя DECODE
следующее:
DECODE(FIS.TARGET_ADDRESS,
' 3222011111','BCC',
' 3222018181','BCC',
' 3222012345','MAIN',
' 3222785120','Eshipper',
' 3222785121','Eshipper',
'OTHER')
Ответ №2:
Вы можете использовать IN
ключевое слово:
WHEN FIS.TARGET_ADDRESS IN ('3222785120', ' 3222785121') THEN