decode与case when 函数】的更多相关文章

百度百科: DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. DECODE 中的if-then-else逻辑 在逻辑编程中,经常用到If – Then –Else 进行逻辑判断.在DECODE的语法中,实际上就是这样的逻辑处理过程.它的语法如下: DECODE(expr, if1, then1, if2,then2, if3,then3, . . . else ) expr表示一个表达式…
ORACLE几种常用的方法 1.decode 常见的用法 : 格式:decode(condition,value1,result[, value2,result2], default_result) 说明:decode相当于if条件判断函数,condition为表达式,相当于输入的值,当输入值为value1时,则对应的返回结果为result1:    当输入值为value2时,则对应的返回结果为result2:如果未能与任何一个value匹配成功,则对应的返回结果为default_result:…
Case具有两种格式,简单Case函数和Case搜索函数.这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 简单Case函数 CASE sex          WHEN '1' THEN '男'           WHEN '2' THEN '女'  ELSE '其他' END Case搜索函数 CASE WHEN sex = '1' THEN '男'           WHEN sex = '2' THEN…
--Case函数: --有两种格式: -- 1.简单Case函数. -- 2.Case搜索函数. --1.简单Case函数: -- CASE [COLUMN_NAME] -- WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容'] -- WHEN ['条件参数'] THEN ['COLUMN_NAME/显示内容'] -- ...... -- ELSE ['COLUMN_NAME/显示内容'] -- END --2.Case搜索函数: -- CASE WHEN [COLUM…
Decode和case都可以实现SQL中的条件结构,下面为用法示例: select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_score01 order by grade 运行情况: SQL> select id,name,score,decode(floor(score/20),5,'A',4,'B',3,'C',2,'D','E') as grade from tb_s…
--decode条件判断函数 ,,,,,) from dual --需求:不通过连表查询,显示业主类型名称列的值 ,,,'商业','其他') from t_owners --case when then写法 select name,( case ownertypeid then '居民' then '事业单位' then '商业' else '其他' end )from t_owners --case when then 相对灵活的写法 select name,( case then '居民'…
对于CASE与DECODE其实并没有太多的区别,他们都是用来实现逻辑判断.Oracle的DECODE函数功能很强,灵活运用的话可以避免多次扫描,从而提高查询的性能.而CASE是9i以后提供的语法,这个语法更加的灵活,提供了IF THEN ELSE的功能.想要知道他们具体的用法,我们先来看看他们的语法: CASE表达式语法: CASE还有另外一种语法: DECODE语法就相对简单的多,DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果…
今天做项目的时候遇到一个oracle数值转换的问题,按需求需要对匹配系统时间进行固定赋值,为了避免增加复杂度并易于维护,尽量不要使用存储过程或触发器,最好是使用oracle 自带函数. 如: SQL> select to_char(sysdate,'yyyyMMddhh24mi') as time from dual; TIME------------201602292302 需要对年月日时分的分做判断,若系统时间分钟值大于或等于30,则值固定为30 ,若值小于30 则判断为0: 首先想到的是用…
表结构如下: 将money<50的显示为贫农,money<80的显示为中农,其他的显示为富农,sql 语句如下 select name, case then '贫农' then '中农' else '富农' end results from t2 查询结果如下: 使用decode的方式: ,),'贫农', ), '中农', '富农') from t2 注:sign函数返回一个数数值的正负标识, 语法如下:sign( number )number 要测试标志的数字.If number <…
--建表 create table kecheng( id NUMBER, name VARCHAR2(20), course VARCHAR2(20), score NUMBER); --插入数据insert into kecheng (id, name, course, score)values (1, '张三', '语文', 67);insert into kecheng (id, name, course, score)values (1, '张三', '数学', 76);insert…
1.DECODE 只有Oracle 才有,其它数据库不支持; 2.CASE WHEN的用法, Oracle.SQL Server. MySQL 都支持; 3.DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,<,<=,<>,is null,is not null 等的判断; 4.DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活; 5.另外,在decode中,null和null是相等的,但在case…
1.DECODE 只有Oracle 才有,其它数据库不支持; 2.CASE WHEN的用法, Oracle.SQL Server. MySQL 都支持; 3.DECODE 只能用做相等判断,但是可以配合sign函数进行大于,小于,等于的判断,CASE when可用于=,>=,<,<=,<>,is null,is not null 等的判断; 4.DECODE 使用其来比较简洁,CASE 虽然复杂但更为灵活; 5.另外,在decode中,null和null是相等的,但在case…
case在SQL中有两种写法,先建立一个表create table salgrade(grade int, sal int);insert into salgrade values(1,1000);insert into salgrade values(2,2000);insert into salgrade values(3,3000);commit;第一种写法,简单写法:select grade,sal,  case grade  when 1 then 'low'  when 2 then…
1.Case函数的用法  (1)使用类似:switch-case与if-else if. (2)语法: case [字段] when 表达式 then 显示数据 when 表达式 then 显示数据 else 显示数据 end (3)百分制转换素质教育 1)如图:我们要将显示的数据转换成ABCDE,规则是90分以上显示A,80分以上显示B,以此类推.  2)执行的SQL语句是: Select ID,TestBase, Case then ‘A’ then ‘B’ then ‘C’ then ‘D…
一.case语句概述 使用case语句改写if多分支可以使脚本结构更加清晰.层次分明 针对变量不同取值,执行不同的命令序列 case语句结构如下: case 变量值  in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认命令序列 esac #!/bin/bash read -p "请输入一个字符: " key case "$key" in [a-z]|[A-Z]) #假如变量$key在26个大小写英文字母中 echo "您输入的是字母&…
语法 decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) select * from reglike; ,),'aaa','yes','no') decode from reglike;     语法 case when 条件1 then 值1 when 条件2 then 值2 ... when 条件n then 值n else 缺省值 end select * from reglike; select case when substr(name,1,3)='aa…
CASE…
Decode() 对应 case when函数 case CHARINDEX('/',start_point_name) when 0 then start_point_name else substring(start_point_name,1,CHARINDEX('/',start_point_name)-1) end 注意:sqlserver在用case when判断是否为null时,语法不一样 判断null应该用: case when identifier is null then ai…
在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl().decode().case...when...函数可以给null值指定一个值去干扰他排序的位置,如果nvl(XX,'')则是不处理null值,排序时ASC升序则排在最后,DESC降序则排在最前. 2.在排序时运用nulls last 或nulls first. 例如: select name,age…
oracle的decode函数使用:http://www.cnblogs.com/hwaggLee/p/5335967.html case ..when 函数使用:http://www.cnblogs.com/hwaggLee/p/5336097.html mysql解决方案 select CASE WHEN 字段名称 IS NULL THEN '未知' WHEN 字段名称 = '004-001' THEN '前端' ELSE '后端' END AS '字段显示名称'from fb_log l…
http://blog.csdn.net/zhangbingtao2011/article/details/51384393 一,DECODE函数 其基本语法为: DECODE(value, if1, then1, if2, then2, if3, then3,...ifn, thenn, else) 表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else.亦即:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值…
Case具有两种格式.简单Case函数和Case搜索函数. 简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END   --Case搜索函数  CASE WHEN sex = '1' THEN '男'  WHEN sex = '2' THEN '女'  ELSE '其他' END     种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式.还有…
异同点 都可以对表行转列: DECODE功能上和简单Case函数比较类似,不能像Case搜索函数一样,进行更复杂的判断 在Case函数中,可以使用BETWEEN, LIKE, IS NULL, IN, EXISTS等等(也可以使用NOT IN和NOT EXISTS,但是这个时候要注意NULL的情况.) DECODE方法 (Oracle公司独家) decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) --该函数的含义如下: IF 条件=值1 THEN RETURN(翻…
case 函数是聚合函数的一种,为统计函数. case表达式: CASE selector WHEN value1 THEN action1; WHEN value2 THEN action2; WHEN value3 THEN action3 一.CASE WHEN 表达式有两种形式 (1)简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END (2)Case搜索函数 CASE WHEN sex = '1' THE…
  isnull(aa,0)删除表数据: truncate table aaa 添加字段: ALTER TABLE table1 ADD col1 varchar(200) DEFAULT '2008-05-22' 修改字段名: alter table table1 rename column col1 to col2; 修改字段属性: alter table table1 alter column col1 varchar(200) not null; 修改默认值: alter table t…
Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要…
Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result1 WHEN expression2 THEN result2 ... WHEN expressionN THEN resultN ELSE default_result 搜索CASE表达式,使用条件确定返回值. 语法: CASE WHEN condition1 THEN result1 WHEN…
1.union all UNION 操作符用于合并两个或多个 SELECT 语句的结果集.请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. 默认地,UNION 操作符选取不同的值.如果允许重复的值,请使用 UNION ALL. 2.if ifnull 把salary表中的女改成男,男改成女: update salary set sex = if( sex = '男','女','男'); if(tr…
Case有2中格式:简单Case函数和Case搜索函数. 简单函数:case sex when '1' then '男' when '2' then ‘女’ else  '其它' end;(sex是列)   搜索函数:case when sex='1' then '男 ' when sex='2' then '女'   实际使用先创建一个表看看 create table t_test( id number primary key, matchdate varchar2(12), resul va…
下面是一个是用case函数来完成这个功能的例子 case具有两种格式.简单case函数和case搜索函数. --简单case函数 case sex         when '1' then '男'         when '2' then '女'else '其他' end--case搜索函数case when sex = '1' then '男'         when sex = '2' then '女'else '其他' end 这两种方式,可以实现相同的功能.简单case函数的写法相…