SELECT
DECODE
(
'持久层技术缩写',
j, 'jdbc',
h, 'hibernate',
i, 'ibatis',
j, 'JPA'
'other'
) AS '具体持久方式'
FROM 'java开发';
可以清楚的看出decode是一个一对一译码过程,这也是它为什么叫decode的原因。
1.serach case的用法
SELECT
CASE
WHEN '女人特征' = '臭味相投'
THEN '死党'
WHEN '女人特征' = '端庄贤慧'
THEN '老婆'
WHEN '女人特征' = '善解人意'
THEN '红颜知己'
WHEN '男人特征' = '志同道合'
THEN '朋友'
WHEN '男人特征' < '道德底线'
THEN '小人远之'
ELSE '不做选择'
END AS '人际交往'
FROM '社会';
可以看出有多种选择,而且可以是不同字段,安顺序进行匹配谁先匹配上了就end,另外它可以对范围进行判断,这是decode不具备的功能
2.simple case的用法
SELECT
CASE
'持久层技术缩写',
WHEN 'j' THEN 'jdbc'
WHEN 'h' THEN 'hibernate'
WHEN 'i' THEN 'ibatis'
WHEN 'j' THEN 'JPA'
ELSE 'other'
END AS '具体持久方式'
FROM 'java开发';
这种方式其实可decode基本一样
decode用的人比较多,可能是因为它出现的比较早,case是在oracle8.1以后才加入的,在之前要在sql中实现if else的逻辑判断却需要其它辅助函数floor和sign。另外decode的用法比较简洁我觉得也是一个原因。
由于case是SQL标准, 所以使用的时候最好优先考虑case语句。
参考了:Frank Kulash的解释
分享到:
相关推荐
在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
DECODE函数提供了一种简洁的语法,使得在SQL查询中可以根据不同的条件返回不同的值,而无需使用复杂的CASE语句或者IF-THEN-ELSE逻辑。 DECODE函数的基本语法如下: ```sql DECODE(expression, value1, result1, ...
Decode()函数常与NVL()函数一起使用,处理可能的NULL值。NVL()函数用于将NULL替换为指定的值。例如: ``` DECODE(NVL(column, 'default'), 'value', 'result') ``` 这个例子中,如果`column`是NULL,先用`'...
在高级 SQL 编程中,Case 与 Decode 是两个非常有用的函数,它们能够极大地提高数据处理能力和查询效率。 高级 SQL 编程在数据库开发技术中扮演着非常重要的角色,它能够极大地提高数据库的查询效率和数据处理能力...
在列转行的应用中,DECODE函数可以与PIVOT操作结合使用。PIVOT操作用于将行转换为列,而DECODE则用于提供列值的逻辑判断。比如,如果你有一个销售数据表,包含产品ID、月份和销售额,你可以通过以下方式将不同产品的...
这里的`CASE-WHEN`语句与`DECODE`函数类似,也是将字段值映射到对应的排序值,然后根据这些值进行排序。`CASE-WHEN`的优点在于其结构更清晰,易于阅读,并且可以处理更复杂的条件判断。 3. **效率与优化** 虽然这...
Decode函数是Oracle数据库中用于实现条件逻辑的一个内置函数,它类似于编程语言中的switch-case语句或if-then-else语句。Decode函数可以对给定的表达式进行多个条件判断,并返回匹配条件的相应值。Decode函数广泛...
- **高效性**:在某些情况下,`DECODE`函数可能比等效的`CASE WHEN`结构执行得更快。 ##### 注意事项: - **NULL处理**:需要注意的是,默认情况下,如果`input_value`为`NULL`,那么`DECODE`函数将返回`NULL`,...
5. **与CASE语句的比较** 虽然 `Decode` 在某些情况下提供了简洁的解决方案,但 `CASE` 语句更通用,可以处理更复杂的逻辑。`CASE` 支持更灵活的条件和返回值,可以用于创建复杂的计算和逻辑判断。 6. **注意事项*...
这比使用 if-then-else 语句或 choose case 语句要简洁得多。 DECODE 函数的应用非常广泛,例如,在 Oracle 系统中就有许多数据字典是使用 DECODE 思想设计的,比如记录会话信息的 V$SESSION 数据字典视图。我们...
`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ANSI 标准而更受推荐使用。 #### 二、基本结构 `CASE WHEN` 语句的基本结构如下: ```sql CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ...
DECODE函数还可以与其他函数结合使用,例如`LPAD`,用于在输出前填充零,确保数据的格式一致。例如,如果你有一个自增的主键,想在输出时自动加1并前面补零,可以这样做: ```sql SELECT LPAD(DECODE(COUNT(记录编号...
DECODE函数提供了一种简洁的语法,使得我们可以在SQL查询中避免使用复杂的CASE语句或者IF-THEN逻辑。它的工作原理是,对指定的表达式进行评估,如果与第一个参数匹配,则返回第二个参数;如果不匹配,则返回后续参数...
然而,在面对复杂的多条件组合统计需求时,`DECODE`函数的应用可能会变得相对繁琐,这时往往更倾向于使用`CASE WHEN`语句或创建视图的方法来解决。不过,如果出于特定原因需要坚持使用`DECODE`函数,那么了解如何...
在这个例子中,DECODE函数被用来检查`empno`字段的值是否与预设的员工编号匹配。如果`empno`等于7369,那么返回'smith';如果等于7499,返回'allen';以此类推。如果没有任何匹配,那么返回'unknow'。这可以看作是...
为了简化这一过程,我们可以利用Oracle SQL的内置函数,如DECODE和CASE WHEN,直接在数据库层面进行处理。 首先,尝试使用DECODE函数。DECODE函数允许我们根据指定的条件返回不同的值。例如,DECODE(ZY_TYPE, '国家...
但请注意,实际的行列转换通常需要用到更复杂的SQL语句,如Pivot或CASE语句,而DECODE函数通常只在简单的转换场景中使用。 总的来说,Oracle DECODE函数是数据库查询中的一个重要工具,尤其在处理条件判断和数据...