oracle的decode、sign、nvl,case...then函数
ORACLE几种常用的方法
1、decode 常见的用法 :
格式:decode(condition,value1,result[, value2,result2], default_result)
说明:decode相当于if条件判断函数,condition为表达式,相当于输入的值,当输入值为value1时,则对应的返回结果为result1;
当输入值为value2时,则对应的返回结果为result2;如果未能与任何一个value匹配成功,则对应的返回结果为default_result;
实例1:decode不同于其他的SQL函数,decode函数可以识别和操作空值。
SELECT name,DECODE(grade_level,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM emp;
实例2: decode 也可以使用嵌套的方式来进行多个值得选择
一个员工的出勤:可能会出现四种状态:公出,请假,出勤,休息。其中‘公出’是在‘请假’记录中包含的,“出勤”和“休息”是一个字段的两个状态。
select name,decode(business_out , Y, "公出", decode(leave, Y,"请假" ,decode(attend,Y,“出勤”,N,“休息”)))
from emp;
2、sign 常见用法:
格式:sign(n)
说明:取数字n的符号,n大于0返回1,小于0返回-1,等于0返回0
实例:
select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;
-- 返回结果:1 -1 0
select sign(20-10) from dual;
-- 返回结果:1
3、nvl 常见用法
格式:nvl(exp1,exp2)
说明:如果oracle的第一个参数exp1为空,则显示第二个参数exp2的值,如果第一个参数不为空,则显示第一个参数本来的值
实例:
select name,NVL(comm, -1) comm from emp;
-- 结果 其中显示-1的本来的值全部都是空值的
name comm
SMITH -1
ALLEN 300
WARD 500
JONES -1
用法:可以用它来判断一个字段是否为null,oracle判断某字段是否为null时,不可以使用‘=’,只能使用'IS NULL', 'IS NOT NULL',不可以是‘=NULL’, '!=NULL'
NULL 值与任何其它值的比较(即使是 NULL)永远返回 false,即 NULL = NULL 返回false 。即‘where NULL=NULL’整个查询结果的结果集一定是空的。
4、case…when…常见用法
格式1(简单case函数):case sex
when 'boy' then '男'
when 'gril' then '女'
else '未知' end
格式2(搜索case函数)(常用,因为可以写判断是,不仅仅是‘=’):case when sex = 'boy' then '男'
when sex = 'gril' then '女'
else '未知' end
说明:这两种方式,可以实现相同的功能。简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式。
oracle的decode、sign、nvl,case...then函数的更多相关文章
- Oracle中的COALESCE,NVL,NVL2,NULLIF函数
http://jingyan.baidu.com/article/fa4125acaf898e28ac7092b9.html
- Oracle的decode、sign、trunc函数
原文http://knowyouknowme.iteye.com/blog/574974 一.decode 在Oracle/PLSQL中, decode 具有和 IF-THEN-ELSE 一样的功能 ...
- oracle group by rollup,decode,grouping,nvl,nvl2,nullif,grouping_id,group_id,grouping sets,RATIO_TO
干oracle 047文章12当问题,经验group by 声明.因此邂逅group by rollup,decode,grouping,nvl,nvl2,nullif,RATIO_TO_REPOR ...
- oracle中DECODE与CASE的用法区别
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个 ...
- oracle的decode函数
以下转自百度, 类似于case... when... then...else...end... DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供 ...
- Oracle 中 decode 函数用法
Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 ...
- Oracle数据库DECODE函数的使用.
decode函数是Oracle数据库独有的. 语法为: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 例子:select decode(sign(变量1-变量2) ...
- decode与case when 函数
百度百科: DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. DECODE 中的if-th ...
- Oracle 中 decode 函数用法(转)
含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THE ...
随机推荐
- Multisim 之逻辑转换仪
1.逻辑转换仪的作用 已知逻辑电路图 1)根据逻辑电路图转换成逻辑表达式 2)化简逻辑表达式 3)列出真值表 已知真值表 1)根据真值表转化成逻辑表达式 2)根据逻辑表达式生成逻辑电路 2.如何在Mu ...
- 「题解」「BZOJ-4668」冷战
题目 点这里 思路及代码 我们可以使用并查集的按秩合并(但是不要路径压缩). 两个集合被合并起来,连上的边的权值就设为当前时间. 然后我们可以发现,询问 \(j\) 与 \(k\) 何时联通,就是查询 ...
- 远程操作Linux主机
通过putty文件访问: 下载路径:https://the.earth.li/~sgtatham/putty/0.70/w32/putty-0.70-installer.msi 通过Python文件执 ...
- jquery 相同ID 绑定事件
本文链接:https://blog.csdn.net/lan_13217/article/details/84079441 http://hi.baidu.com/meneye/blog/item/1 ...
- Linux shell cut 命令详解
详细资料请参考:博客园骏马金龙 https://www.cnblogs.com/f-ck-need-u/p/7521357.html cut命令将行按指定的分隔符分割成多列,它的弱点在于不好处理多个分 ...
- 大小端(MSB & LSB)
谈到字节序的问题,必然牵涉到两大CPU派系.那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU.PowerPC系列采用big endian方式存储数据,而x86系列则采用l ...
- markdown整理
html标签# h1 ## h2 ### h3 #### h4 ##### h5 ###### h6 一级标题:内容=== 二级标题:内容--- 强调文字:>内容 链接:[文字](链接地址) 图 ...
- Python中的参数解包:`*`表达式和 `**`表达式
目录 1.参数解包:方法调用中的*表达式和**表达式 2.参数解包:方法定义中的*表达式和**表达式 3.在元组,列表,集合和字典中解包 4.Extended Unpacking:赋值表达式左边的*表 ...
- Spring-boot JDBC with multiple DataSources sample
Spring-Boot's auto-configurer seems good for simple applications. For example it automatically creat ...
- ubuntu mysql新增用户并开启远程连接
1.首先用root用户登录mysql mysql -u root -p 输入密码后登录成功 2.新建用户 use mysql; select host,user from user;(查看现有用户) ...