decode (case when sd='N' and sr_corp_support='0' then sr_corp_agree else null end, '1','0','0','1','') as sr_corp_agree,
嗨,我有困难理解这段代码在我看来,当某个表述为1时,我们得到0,当某个语句为0时,我们得到1
但是我不太确定
你能帮我解释一下当语句into为0或1时如何解释这种情况吗
谢谢。
This:
decode(
case when sd='N' and sr_corp_support='0' then sr_corp_agree else null end,
'1','0',
'0','1',
''
) as sr_corp_agree
可以重写为:
CASE
WHEN sd='N' AND sr_corp_support='0' AND sr_corp_agree = '1'
THEN '0'
WHEN sd='N' AND sr_corp_support='0' AND sr_corp_agree = '0'
THEN '1'
ELSE NULL -- Same as ''
END AS sr_corp_agree
中文:如果sd
和sr_corp_support
列值分别为N
和0
,则如果sr_corp_agree
为1
或0
,则分别输出相反的0
或1
,并且对于任何其他sd
,sr_corp_support
或sr_corp_agree
值输出空字符串(在Oracle中,与NULL
相同)。