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')