decode与case when

语法

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

select * from reglike;
select decode(substr(name,1,3),‘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)=‘aaa‘ then ‘yes‘ else ‘no‘ end case from reglike; 

时间: 2024-10-18 00:33:52

decode与case when的相关文章

DECODE 与CASE WHEN 的比较以及用法

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

decode 类似 case when

将查询的结果翻译成其他值,类似 case  when to_char(创建时间,'mm') ='01' then '查询统计的是1月 ' when to_char(创建时间,'mm') ='02' then '查询统计的是2月 ' when to_char(创建时间,'mm') ='03' then '查询统计的是3月 ' ....................... select decode( to_char(创建时间,'mm') , '01' , '查询统计的是1月 ', '02' ,

decode()与case then 学习与使用

今天做项目的时候遇到一个oracle数值转换的问题,按需求需要对匹配系统时间进行固定赋值,为了避免增加复杂度并易于维护,尽量不要使用存储过程或触发器,最好是使用oracle 自带函数. 如: SQL> select to_char(sysdate,'yyyyMMddhh24mi') as time from dual; TIME------------201602292302 需要对年月日时分的分做判断,若系统时间分钟值大于或等于30,则值固定为30 ,若值小于30 则判断为0: 首先想到的是用

Oracle nvl、nvl2、nullif、decode、case函数详解

1.NVL函数 nvl(expr1,expr2),如果expr1为空,则返回expr2: 2.NVL2函数 nvl2(expr1,expr2,expr3),如果expr1为空,则返回expr3,否则返回expr2: 3.NULLIF函数 nullif(expr1,expr2),如果expr1=expr2,返回空,否则返回expr1,要求两个表达式数据类型一致: SQL> insert into t1 values(9); 说明1:NVL和NVL2函数在进行空值判断的时候,都会将函数内的表达式执行

Oracle用户登录和连接查询、特殊排序、over()、rank()、decode()、 case when、UNION/UNION ALL

一.登录问题 1. 忘记用户名密码: (1)默认应户名密码: system/manager    sys/change_on_install     scott/tiger (2)cmd以系统管理员身份登录: C:\Users\SAMSUNG>sqlplus system/manager as sysdba 查看所有user: SQL> select username from dba_users; 修改用户密码: SQL> alter user scott identified by

decode and CASE

CASE 原文地址:https://www.cnblogs.com/kakaisgood/p/9567378.html

2016.7.10 SqlServer语句中类似decode、substr、instr、replace、length等函数的用法

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

Decode函数说明以及纵横表的转化

Decode函数说明 含义解释: decode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3    当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多 decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN RETURN(翻译值1) ELSIF 条件=值2 THEN RETURN(翻译值2) ...... ELSIF 条件

Oracle学习 第8天

真不想写,但还是要逼自已每天学一点,写一点.今晚倒时没玩,一回家就被电话叫到线上处理事情,抽些时间学一些Oracle 1.字符函数,有UPPER.LOWER.INITCAP(首字母大写).REPLACE.LENGTH.SUBSTR.ASCII.CHR.RPAD.LPAD.LTRIM.RTRIM.TRIM.INSTR(子字符串是否在指定位置上出现) 2.验证用的虚拟表:dual,专门用来验证.测试用的(直接SELECT不行吗?一定要FROM DUAL?以后试下) 3.数值函数:ROUND.TRUN