问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle decode的用法有哪些?

发布网友 发布时间:2022-04-27 04:20

我来回答

1个回答

热心网友 时间:2022-04-08 11:52

decode含*释:
decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from al; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
2、此函数用在SQL语句中,功能介绍如下:
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 LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,'0') 记录编号 from tetdmis
eg:
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 表

3,order by对字符列进行特定的排序
还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, '语文', 1, '数学', 2, , '外语',3)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
cad里面打完字怎么还原十字架 财务建帐需要什么 建账建账的基本要求 当爱情与亲情需要丢弃一样时,你会选择丢弃哪一方 当爱情和亲情有冲突时你会怎样决择?你会为你所爱的人不顾一切吗? 剑网三 查看余额 因为某些特殊原因不好登陆游戏查看,求其他方式_百度知 ... 右肺上叶中叶结节灶怎么回事 节能门窗有哪些标准 节能门窗有哪些 节能门窗具有哪些特征 宏定义函数typedef int(*lpAddFun)(int, int);有什么好处? 用oracle命令建一表,表中的数字类型,如何在输入时能输入001?就是数字前带0,或必须输入几位,数字不够 怎么和猫咪好好相处 怎样才能保持心理健康? 用CSS 制作边框圆角线 有关于猫咪的趣事可以分享吗? Oracle环境,如何将数字都变为两位?例:1转化为01,2转为为02……10是10... 怎么用CSS将图片显示成圆角[图] 出险需要带什么资料 求我与动物之间的故事 比如:狗、猫、鸡、鸭等 消防监理费包含哪些费用 嗯 我现在用oracle 的数据库 现在有一表A 里面有一VARCHAR2(5)类型的... 工程监理费用 工程监理费的构成有哪些? 一个sql函数名,如果字符串不够位数的话就在前面加上指定位数指定字符... 在css中怎样让边角具有弧度 求一篇写我与猫或狗趣事的文章!5、600字! css中怎么设置圆角边框 保险出险需要什么资料 CSS如何用2张图片实现固定宽度圆角边框? 有没有CSS样式可以实现图片圆角? Oracle SQL查询和SQL函数 问题 css+div 用图片做圆角边框 高手求救,关于C++的简单问题,我想问一下,typedef int(*lpAddFun)(int, int);表示什么意思啊 CSS怎么让边框变成圆角的 读了核桃和猫的故寓言故事让我明白了什么 怎么样保持心理健康 css 如何用图片改变表单边框的样式(圆角边框,有阴影) SQL有哪些内置的标准函数,有没有清单和用法 如何区分液晶电视的IC驱动性能的好坏 请问:LCD面板上的驱动IC要写资料才可以用吗,才会有显示吗!如果要写,那应该怎么写!!!!谢谢``` 在LCD显示屏的驱动IC中的数据手册中,.vspl=0:active low(DEFAULT)是什么意思? 三星液晶屏驱动icS6E8AA0X02 显示器 驱动芯片 单片机控制液晶屏显示 LCD,COG保存 申请平安普惠有哪些要求? 缪斯T30HD 液晶屏是什么驱动ic 关于三星液晶显示器驱动芯片问题。。 苹果手机全民k歌里面的歌怎么导出来?