decode—对case的简化

简介: decode—对case的简化               现假设我们有一个用户表t_user,其中拥有一个表示性别的字段gender,该字段对应的值可能为0、1或者空,其中0表示“男”,1表示“女”,空表示“未填”。

decode—对case的简化

 

            现假设我们有一个用户表t_user,其中拥有一个表示性别的字段gender,该字段对应的值可能为01或者空,其中0表示“男”,1表示“女”,空表示“未填”。现需要我们在查询t_usergender时不是显示对应的01,而是显示对应的文本,“男”或“女”。很显然,我们可以使用case when else来实现,对应的SQL语句如下所示:

select case t.gender when 0 then '男' when 1 then '女' else '未填' end as gender from t_user;

 

            如果我们是使用的Oracle数据库,那么我们就没必要写复杂的case when语句了,Oracledecode函数可以帮我们实现同样的功能。decode的语法如下:

decode(value,if-1,then-1,if-2,then-2,..,if-n,then-n,defaultValue)

  

            其表示如果value的值为“if-1”则返回“then-1”,如果值为“if-n”则返回“then-n”,如果value的值不在给定的if值里面则将返回默认值defaultValue。所以使用decode时,上面的逻辑可以简单的转化为如下这样:

select decode(t.gender,0,'男',1,'女','未填') as gender from t_user;

  

            很明显,下面的写法比上面的写法要简单很多。

 

 

目录
相关文章
|
2月前
|
Java
【编程基础知识】switch case可以用string(千万注意要加上break)
本文详细探讨了Java中`switch`语句使用字符串时的注意事项,重点讲解了`break`语句的重要性。通过代码示例和流程图,帮助读者正确理解和使用`switch`语句,避免常见的编程错误。
187 4
|
4月前
|
JavaScript 前端开发
JavaScript 函数中break,continue,return 的区别
JavaScript 函数中break,continue,return 的区别
39 0
|
5月前
|
JavaScript 前端开发
continue、return、break三者的区别
continue、return、break三者的区别
|
6月前
|
C语言
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
|
7月前
break,continue,return的区别深度剖析
break,continue,return的区别深度剖析
|
7月前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
60 0
break、continue、return在循环中用法的区别
break、continue、return在循环中用法的区别
|
7月前
|
编译器 C语言
learn_C_deep_7 (switch 语句的基本理解、case 的作用、break的作用switch、case 推荐规则)
learn_C_deep_7 (switch 语句的基本理解、case 的作用、break的作用switch、case 推荐规则)
|
测试技术 API 数据库
如何设计自动化测试Case?
测试工作的本质是尽可能以更高的效率保障交付产出物的质量满足甚至超出预期,这是所有测试工作的最终目标。
如何设计自动化测试Case?