ORACLE 中的 case 函数 SQL
Case function in ORACLE SQL
我有一个基本问题,当您将 CASE 与多个值一起使用时,我可以使用 OR 但我总是必须重复列的名称 = 或者有一个更简单的解决方案,请参见下面的 phone 数字示例.感谢您的提示。
-- 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",
您可以使用IN
关键字:
WHEN FIS.TARGET_ADDRESS IN ('3222785120', '+3222785121') THEN
您的 CASE..WHEN
表达式可以使用 DECODE
简化如下:
DECODE(FIS.TARGET_ADDRESS,
'+3222011111','BCC',
'+3222018181','BCC',
'+3222012345','MAIN',
'+3222785120','Eshipper',
'+3222785121','Eshipper',
'OTHER')
我有一个基本问题,当您将 CASE 与多个值一起使用时,我可以使用 OR 但我总是必须重复列的名称 = 或者有一个更简单的解决方案,请参见下面的 phone 数字示例.感谢您的提示。
-- 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",
您可以使用IN
关键字:
WHEN FIS.TARGET_ADDRESS IN ('3222785120', '+3222785121') THEN
您的 CASE..WHEN
表达式可以使用 DECODE
简化如下:
DECODE(FIS.TARGET_ADDRESS,
'+3222011111','BCC',
'+3222018181','BCC',
'+3222012345','MAIN',
'+3222785120','Eshipper',
'+3222785121','Eshipper',
'OTHER')