首页 > 数据库 > Oracle > Oracle中decode函数用法 VelHong
含义解释:
IF 条件=值1 THEN
RETURN(返回值1)
ELSIF 条件=值2 THEN
RETURN(返回值2)
......
ELSIF 条件=值n THEN
RETURN(返回值n)
ELSE
RETURN(缺省值)
END IF
select
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
DECODE函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。
DECODE函数在实际开发中非常的有用
结合LPAD函数,如何使主键的值自动加1并在前面补0
select
select decode(dir,1,0,1) from a1_interval
dir 的值是1变为0,是0则变为1 呵呵
比如我要查询某班男生和女生的数量分别是多少
通常我们这么写
select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
select decode(性别,男,1,0),decode(性别,女,1,0) from 表
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22738999/viewspace-1115311/ ,如需转载,请注明出处,否则将追究法律责任。