DECODE 与CASE WHEN 的比较以及用法
2017-06-23 23:12
1126 查看
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 when中,只能用is null来判断,示例如下:
emp表中有一列comm,如果这列为null,则显示为0,否则,显示为原值:
用法
CASE WHEN:
单条件
CASE
WHEN MAIL_FLAG = '1' THEN '已发放'
WHEN MAIL_FLAG = '0' THEN '未发放'
ELSE ''
END AS MAIL_FLAG
多条件
CASE
WHEN MAIL_FLAG = '1' AND STATUS = '1' THEN '已发放'
WHEN MAIL_FLAG = '0' AND STATUS = '0' THEN '未发放'
ELSE ''
END AS MAIL_FLAG
DECODE:
DECODE(MAIL_FLAG,'1','已导出','0','未导出 ' ) AS MAIL_FLAG
DECODE(条件,值1,返回值1,值2,返回值2.....)
条件=值1 返回值1
条件=值2 返回值2
...........................
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 when中,只能用is null来判断,示例如下:
emp表中有一列comm,如果这列为null,则显示为0,否则,显示为原值:
用法
CASE WHEN:
单条件
CASE
WHEN MAIL_FLAG = '1' THEN '已发放'
WHEN MAIL_FLAG = '0' THEN '未发放'
ELSE ''
END AS MAIL_FLAG
多条件
CASE
WHEN MAIL_FLAG = '1' AND STATUS = '1' THEN '已发放'
WHEN MAIL_FLAG = '0' AND STATUS = '0' THEN '未发放'
ELSE ''
END AS MAIL_FLAG
DECODE:
DECODE(MAIL_FLAG,'1','已导出','0','未导出 ' ) AS MAIL_FLAG
DECODE(条件,值1,返回值1,值2,返回值2.....)
条件=值1 返回值1
条件=值2 返回值2
...........................
相关文章推荐
- Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法及其比较
- oracle函数之case和decode的用法区别及性能比较
- case when和decode的用法与区别
- Mysql中ifNull()/if()/case when用法和Oracle中nvl()/nvl2()/decode()的用法
- sql中case when 的用法,字符串拼接,以及连接其他服务器数据库。
- mysql数据库语句 的case when用法,以及数据替换,字符串拼接,时间格式转换的用法
- oracle函数之case和decode的用法区别及性能比较
- SQL中条件语句decode与case...when...else...end的用法
- Oracle中的CASE When和Decode比较
- SQL中的case when then else end用法 .以及个人demo
- case when then与decode分析比较
- case when 与 decode 用法
- Oracle中case when和decode的用法
- decode 和 case when 的用法
- ORACLE 中 DECODE 与 CASE WHEN THEN 用法
- case when和decode比较
- oracle case when及decode的用法
- decode和casewhen和or函数的用法
- postgresql case when then end 以及字符串处理的用法
- 关于oracle中查询语句 decode和 case when 的用法