SELECT DECODE语句:同时更改空值和非空值
我花了好几个小时试图弄明白这一点,但总是出错 基本上我想保留所有字段值,除了更改空值和“0”值。我想将“0”更改为免费,将所有空值更改为“不适用” 我想到的最接近的是SELECT DECODE语句:同时更改空值和非空值,select,null,decode,Select,Null,Decode,我花了好几个小时试图弄明白这一点,但总是出错 基本上我想保留所有字段值,除了更改空值和“0”值。我想将“0”更改为免费,将所有空值更改为“不适用” 我想到的最接近的是 SELECT DECODE(NVL(TO_CHAR(PL.oper),'No'),'0','No Charge','No','Not Applicable',PL.oper) 使用此代码时不会出现错误。0全部更改为“免费”,但由于某些原因,空值保持不变。 因为我的要求非常具体,我在这个网站或谷歌上找不到类似的东西。如果有人能帮助
SELECT DECODE(NVL(TO_CHAR(PL.oper),'No'),'0','No Charge','No','Not Applicable',PL.oper)
使用此代码时不会出现错误。0全部更改为“免费”,但由于某些原因,空值保持不变。
因为我的要求非常具体,我在这个网站或谷歌上找不到类似的东西。如果有人能帮助我,我会非常感激
谢谢无论如何,在这种情况下,请尝试使用案例陈述
SELECT id,
field,
CASE NVL(field, 'No')
WHEN '0' THEN 'No Charge'
WHEN 'No' THEN 'Not applicable'
ELSE 'catch all result do this'
END
FROM xx_test
在没有NVL函数的情况下尝试,bcoz解码函数将两个空值视为相等。你是什么意思?对不起,我是SQL初学者。我想将空值标记为不适用,因此我不知道如何使用NVL函数更改空值。我将如何格式化其他内容以保持其他内容不变?还有别的事吗?身份证字段?