首页 > 解决方案 > SQL SELECT 取决于值

问题描述

我需要建议或想法如何解决我的问题。我根据几个连接进行了选择。所选值之一是 ex。CA.PADDING_ZERO_FLAG这是'0'或'1'。

基于此,我想在 select 语句中获取其他值。

伪代码:

Select if(CA.PADDING_ZERO_FLAG = '1') then LPAD(ZR.START_ZIP_CODE, 5, '0'),
    LPAD(ZR.END_ZIP_CODE, 5, '0') else ZR.START_ZIP_CODE, ZR.END_ZIP_CODE

有可能吗?

提前致谢

标签: sqloracleif-statementselect

解决方案


Case 语句将为此工作。

SELECT
  CASE
     WHEN CA.PADDING_ZERO_FLAG = '1' 
         THEN 
             LPAD(ZR.START_ZIP_CODE, 5, '0')
         ELSE 
             ZR.START_ZIP_CODE
  END as 'START_ZIP_CODE',
  CASE
     WHEN CA.PADDING_ZERO_FLAG = '1' 
         THEN 
             LPAD(ZR.END_ZIP_CODE, 5,'0')
         ELSE 
             ZR.END_ZIP_CODE
  END as 'END_ZIP_CODE'

推荐阅读