decode函数的用法oracle decode四个参数的用法




decode函数的用法oracle decode四个参数的用法

2022-07-21 2:51:30 网络知识 官方管理员

DECODE含义

decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)

这个是decode的表达式,具体的含义解释为:

IF条件=值1THEN

RETURN(翻译值1)

ELSIF条件=值2THEN

RETURN(翻译值2)

......

ELSIF条件=值nTHEN

RETURN(翻译值n)

ELSE

RETURN(缺省值)

ENDIF

DECODE的用法

这里主要说的就是decode的用法,在很多时候这个函数还是很有用的。

1.翻译值

数据截图:

decode函数的用法(oracledecode四个参数的用法)(1)

打开UC浏览器查看更多精彩图片

打开百度APP,查看更多高清图片

需求:查询出的数据,1表示男生,2表示女生

selectt.id,

t.name,

t.age,

decode(t.sex,'1','男生','2','女生','其他')assex

fromSTUDENT2t

结果:

decode函数的用法(oracledecode四个参数的用法)(2)

打开UC浏览器查看更多精彩图片

2.decode比较大小

说明:sign(value)函数会根据value的值为0,正数,负数,分别返回0,1,-1

数据:

decode函数的用法(oracledecode四个参数的用法)(3)

打开UC浏览器查看更多精彩图片

需求:年龄在20以上的显示20以上,20以下的显示20以下,20的显示正好20

selectt.id,

t.name,

t.age,

decode(sign(t.age-20),

1,

'20以上',

-1,

'20以下',

0,

'正好20',

'未知')assex

fromSTUDENT2t

结果:

decode函数的用法(oracledecode四个参数的用法)(4)

打开UC浏览器查看更多精彩图片

3.decode分段

数据暂无

需求:工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为底薪

selectname,

sal,

decode(sign(sal-5000),

1,

'高薪',

0,

'高薪',

-1,

decode(sign(sal-3000),1,'中等',0,'中等',-1,'低薪'))assalname

fromperson;

结果暂无

4.搜索字符串

数据:

decode函数的用法(oracledecode四个参数的用法)(5)

打开UC浏览器查看更多精彩图片

需求:找到含有三的姓名

selectt.id,

decode(instr(t.name,'三'),0,'姓名不含有三','姓名含有三')asname,

t.age,

t.sex

fromSTUDENT2t

结果:

decode函数的用法(oracledecode四个参数的用法)(6)

打开UC浏览器查看更多精彩图片

5.判断是否为空

数据:

decode函数的用法(oracledecode四个参数的用法)(7)

打开UC浏览器查看更多精彩图片

需求:性别为空显示“暂无数据”,不为空原样输出

selectt.id,

t.name,

t.age,

decode(t.sex,NULL,'暂无数据',t.sex)assex

fromSTUDENT2t

结果:

decode函数的用法(oracledecode四个参数的用法)(8)

打开UC浏览器查看更多精彩图片

总结:decode在书写sql的时候还是挺有用的,常用的应该是1和5了吧(我猜的,因为我就是经常用这两种)

发表评论:

最近发表
网站分类
标签列表