`
234390216
  • 浏览: 10219366 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462059
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1774492
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1397546
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394737
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679529
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530311
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1180737
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:466121
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151053
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:67757
社区版块
存档分类
最新评论

decode—对case的简化

阅读更多

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;

  

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

 

 

分享到:
评论

相关推荐

    Oracle-Decode()函数和CASE语句的比较

    首先,`Decode()`函数是一个简化的条件表达式,它允许你在一行代码内完成多个条件的检查。基本语法如下: ```sql DECODE(expression, value1, result1, value2, result2, ..., default_result) ``` 这里的`...

    oracle的decode函数

    - **高效性**:在某些情况下,`DECODE`函数可能比等效的`CASE WHEN`结构执行得更快。 ##### 注意事项: - **NULL处理**:需要注意的是,默认情况下,如果`input_value`为`NULL`,那么`DECODE`函数将返回`NULL`,...

    Oracle中Decode()函数使用技巧

    Decode()函数也可用于GROUP BY、HAVING和ORDER BY子句中,帮助对分组或排序进行条件判断。例如: ``` SELECT DECODE(column, 'value1', 'group1', 'value2', 'group2', 'other') AS group_name, COUNT(*) FROM ...

    使用Decode运算符.rar

    `Decode` 运算符允许我们执行简单的if-else逻辑,而无需使用CASE语句或复杂的逻辑表达式。它的基本形式是 `DECODE(expression, value1, result1, value2, result2, ..., default_result)`. 如果 `expression` 的值...

    Oracle_case_when_用法

    `CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ANSI 标准而更受推荐使用。 #### 二、基本结构 `CASE WHEN` 语句的基本结构如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ...

    [数据库] Oracle使用CASE判断解决多值问题1

    为了简化这一过程,我们可以利用Oracle SQL的内置函数,如DECODE和CASE WHEN,直接在数据库层面进行处理。 首先,尝试使用DECODE函数。DECODE函数允许我们根据指定的条件返回不同的值。例如,DECODE(ZY_TYPE, '国家...

    Oracle 中 decode 函数用法

    在某些情况下,DECODE函数可能不如CASE语句灵活,但其简洁性使其在简单条件判断时特别有用。例如,将某个字段的值进行映射,如将'DIR'字段的值1映射为0,0映射为1: ```sql SELECT DECODE(DIR, 1, 0, 0, 1) FROM a1_...

    oracle decode

    在Oracle中,DECODE函数通常用于简化复杂的查询,比如在GROUP BY、ORDER BY或计算字段中。例如,假设我们有一个名为`employees`的表,包含`salary_grade`列,我们要根据薪资等级分组员工,可以这样使用DECODE: ```...

    oracle中decode函数的使用方法示例

    这可以看作是一种简化的CASE语句。 ```sql SELECT empno, DECODE(empno, 7369, 'smith', 7499, 'allen', 7521, 'ward', 7566, 'jones', 'unknow') AS name FROM emp WHERE rownum ; ``` 2. **DECODE用于比较...

    Oracle DECODE函数语法使用介绍

    在实际应用中,DECODE函数可以用来简化复杂的查询逻辑。例如,假设我们有一个`command`字段,其值可能是0(无操作)、2(插入)、3(选择)、6(更新)、7(删除)或8(删除)。我们可以使用DECODE函数将这些数值...

    使用Oracle的Decode函数进行多值判断

    另一个查询稍微简化了一些: ```sql SELECT username, decode(lock_date, NULL, 'unlocked') AS status FROM t; ``` 这个查询省略了默认值部分,因此当`lock_date`不为NULL时,结果不会显示。在这种情况下,如果`...

    Oracle Decode()函数使用技巧分享

    Oracle的Decode()函数是PL/SQL中的一个非常实用的工具,尤其对于简化SQL查询和处理逻辑判断具有显著的优势。此函数允许我们在不使用复杂的IF-THEN-ELSE或CASE语句的情况下,实现条件判断和值的转换。由于Oracle是...

    数据库基础 高级sql编程

    在高级 SQL 编程中,Case 与 Decode 是两个非常有用的函数,它们能够极大地提高数据处理能力和查询效率。 高级 SQL 编程在数据库开发技术中扮演着非常重要的角色,它能够极大地提高数据库的查询效率和数据处理能力...

    oracle sql 行列转换

    DECODE函数可以简化CASE语句,尤其是在条件较少的情况下。在给定的内容中,DECODE函数被用来实现与CASE语句相同的效果: ```sql SELECT seq, SUM(DECODE(jcxm, 1, zhi, 0)) AS 目标1, SUM(DECODE(jcxm, 2, zhi, 0...

    在employees表中查询出员工的工资,并计算应交税款

    另外,也可以使用DECODE函数来简化代码,实现相同的功能: ```sql SELECT last_name, salary, salary * DECODE( TRUNC(salary / 1000), 0, 0, 1, 0.1, 2, 0.15, 3, 0.2, 0.2 ) AS tax_amount FROM ...

    sql经典 oracle的查询结果的行列互换

    除了 `CASE` 语句外,Oracle 还提供了一个内置函数 `DECODE`,它可以简化条件判断的过程。下面是一个使用 `DECODE` 函数的例子: ```sql SELECT name, SUM(DECODE(kecheng, '语文', chengji, NULL)) AS "语文", ...

    oracle 老方块免费试听课程教学聊天记录,供大家学习

    它可以看作是CASE语句的一种简化形式,用于处理NULL值。 7. **软件子例程和数据类型**: 老方块提到了软件子例程(可能是指数据库内部的函数或过程)在计算中的作用,以及不同类型(如NUMBER和浮点数)对计算性能...

    oracle笔记

    - `DECODE`:简化版的CASE语句,适用于简单的条件判断。 #### 2. **数据类型映射** - 使用`DECODE`或`CASE`语句可以将Oracle的数据类型映射到Java或其他语言的数据类型: ```sql SELECT TABLE_NAME, COLUMN_...

Global site tag (gtag.js) - Google Analytics