我需要建议或想法如何解决我的问题。
我选择基于少数连接。
其中一个选定的值是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
有可能吗?
提前致谢
答案 0 :(得分:1)
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'
答案 1 :(得分:0)
您可以使用解码功能
select
decode(CA.PADDING_ZERO_FLAG,
'1', LPAD(ZR.START_ZIP_CODE, 5, '0'),
'0', ZR.START_ZIP_CODE) START_ZIP_CODE,
decode(CA.PADDING_ZERO_FLAG,
'1', LPAD(ZR.END_ZIP_CODE, 5, '0'),
'0', ZR.END_ZIP_CODE) END_ZIP_CODE
...