decode函数
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(返回值1)
ELSE IF 条件=值2 THEN
RETURN(返回值2)
......
ELSE IF 条件=值n THEN
RETURN(返回值n)
ELSE
RETURN(返回值)
END IF
case when then else
举例:
select id,name,sex,(case sex when 1 then '男' when 2 then '女' else '其他' end) 性别 from users ;
ID NAME SEX 性别
--------------------------------------- -------------------- --------
1 张一 其他
2 张二 1 男
3 张三 其他
4 张四 其他
5 张五 2 女
6 张六 1 男
7 张七 2 女
8 张八 1 男
Nvl()和Nvl2()
NVL(表达式1,表达式2)
如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。
NVL2(表达式1,表达式2,表达式3)
如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。