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;

  

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

 

 

目录
相关文章
|
8天前
|
Java
【编程基础知识】switch case可以用string(千万注意要加上break)
本文详细探讨了Java中`switch`语句使用字符串时的注意事项,重点讲解了`break`语句的重要性。通过代码示例和流程图,帮助读者正确理解和使用`switch`语句,避免常见的编程错误。
14 4
|
8天前
|
Java
【编程基础知识】《Java 基础探秘:return、break、continue、label、switch 与 enum 的深度解析》
本文深入解析了 Java 中的 return、break、continue、label、switch 和 enum 等基础概念,通过代码示例和流程图,帮助读者理解这些控制结构和枚举类型在编程中的应用,提升编程能力。
16 3
|
JSON 移动开发 应用服务中间件
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
3244 0
调用Feign接口报错:JSON parse error:Illegal character ((CTRL-CHAR, code 31))
|
20天前
|
固态存储 SDN
编写input()和output()函数输入
编写input()和output()函数输入。
23 2
|
3月前
|
JavaScript 前端开发
continue、return、break三者的区别
continue、return、break三者的区别
|
4月前
|
C语言
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
【C语言基础篇】结构控制(下)转向语句break、continue、goto、return
|
5月前
break,continue,return的区别深度剖析
break,continue,return的区别深度剖析
|
5月前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
47 0
|
XML JSON 前端开发
【源码解读】TP5return json_encode ajax自动被加上双引号
在thinkphp5中,return数据才是控制器正确的时候方式,而不是直接echo 然后die 或者exti 因为框架有后置数据的落地处理等等,直接让程序退出并不友好,既然我们选择了框架,就应该遵循框架的设计理念 这样子能让我们避免一些坑爹事件的发生。
259 0