日期:2014-05-16  浏览次数:20527 次

oracle 数据库中的decode 和nvl函数
SELECT 
DECODE(WP01.ONDO_KBN,0,'対象外'1,'常温',2,'保冷')  AS ONDO_KBN
FROM 
WP01_S_HAITOTAL WP01

//分析: 当WP01.ONDO_KBN=0时,将"対象外"赋值

当WP01.ONDO_KBN=1时,将"常温"赋值

当WP01.ONDO_KBN=2时,将"保冷"赋值

NVL()函数:
NVL(ARG,VALUE)达标如果前面的ARG值为NULL那么返回的值为后面的VALUE

二者结合使用:
DECODE(NVL(M01.NINUSI_NM,''),'','-',M01.NINUSI_NM) 

//分析:

首先判断--若M01.NINUSI_NM是否为空.若为空赋给空值[NVL函数]

其次,判断取出的字段是否为空,如果是则赋给'-'

最后的默认处理是M01.NINUSI.NM。

使用nvl时,
NVL(eExpression1, eExpression2)
eExpression1 和 eExpression2 可以是任意一种数据类型。
[color=red][b]注意:两个参数得类型要匹配[/b][/color]