SELECT LogID,UserID,LogTime,Url,Description,(case OperateType when OperateType = 0 then '新增' when OperateType=1 then '修改' else '删除' end case) FROM LOG ????
1. case
SELECT LogID,UserID,LogTime,Url,Description,(
case
when OperateType = 0
then '新增'
when OperateType=1
then '修改'
else '删除'
end ) FROM LOG
2.DECODE的写法:
SELECT LogID,UserID,LogTime,Url,Description,
decode(OperateType,0,'新增',1,'修改','删除') OperationName
FROM LOG
建议用DECODE的写法
·含义解释:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
· 使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
2、表、视图结构转化
现有一个商品销售表sale,表结构为:
month char(6) --月份
sell number(10,2) --月销售金额
现有数据为:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
想要转化为以下结构的数据:
year char(4) --年份
month1 number(10,2) --1月销售金额
month2 number(10,2) --2月销售金额
month3 number(10,2) --3月销售金额
month4 number(10,2) --4月销售金额
month5 number(10,2) --5月销售金额
month6 number(10,2) --6月销售金额
month7 number(10,2) --7月销售金额
month8 number(10,2) --8月销售金额
month9 number(10,2) --9月销售金额
month10 number(10,2) --10月销售金额
month11 number(10,2) --11月销售金额
month12 number(10,2) --12月销售金额
结构转化的SQL语句为:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
as
select
substrb(month,1,4),
sum(decode(substrb(month,5,2),'01',sell,0)),
sum(decode(substrb(month,5,2),'02',sell,0)),
sum(decode(substrb(month,5,2),'03',sell,0)),
sum(decode(substrb(month,5,2),'04',sell,0)),
分享到:
相关推荐
下面我们将详细讲解DECODE函数的使用方法以及如何在列转行操作中应用它。 DECODE函数的基本语法如下: ```sql DECODE(column, value1, result1, value2, result2, ..., default_result) ``` 这里`column`是要检查的...
DECODE函数还可以与其他函数结合使用,例如`LPAD`,用于在输出前填充零,确保数据的格式一致。例如,如果你有一个自增的主键,想在输出时自动加1并前面补零,可以这样做: ```sql SELECT LPAD(DECODE(COUNT(记录编号...
Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...
下面将详细介绍Oracle Decode()函数的使用技巧。 1. **基本语法**: Decode()函数的基本语法如下: ``` DECODE(source, value1, result1, value2, result2, ..., default_value) ``` 其中,`source`是要检查的...
在 Oracle 数据库中,`CASE WHEN` 表达式提供了一种在 SQL 查询中实现条件判断的方法,这使得开发人员能够在不使用 PL/SQL 的情况下编写更为灵活和复杂的查询语句。`CASE WHEN` 与 `DECODE()` 函数相似,但因其符合 ...
在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...
为了更好地理解`DECODE`函数的使用方法,我们来看一个具体的例子。假设有一个名为`checkup`的表,其中包含`checkup_type`和`blood_test_flag`两个字段,`blood_test_flag`用于标识是否进行了血液测试,其中`Y`表示...
这里的`CASE-WHEN`语句与`DECODE`函数类似,也是将字段值映射到对应的排序值,然后根据这些值进行排序。`CASE-WHEN`的优点在于其结构更清晰,易于阅读,并且可以处理更复杂的条件判断。 3. **效率与优化** 虽然这...
Oracle中的DECODE函数是一个非常实用的工具,它允许我们在SQL查询中进行条件判断,并返回相应的值。DECODE函数的基本语法如下: ```sql DECODE(value, if1, then1, if2, then2, ..., else) ``` 1. **DECODE用于...
综上所述,Oracle的CASE WHEN语句是数据库查询中处理条件分支的重要工具,可以在SELECT、WHERE和GROUP BY等不同场景中使用,提供了一种灵活的方式来构造复杂的逻辑判断。了解并熟练运用CASE WHEN,能够显著提升SQL...
DECODE函数提供了一种简洁的语法,使得我们可以在SQL查询中避免使用复杂的CASE语句或者IF-THEN逻辑。它的工作原理是,对指定的表达式进行评估,如果与第一个参数匹配,则返回第二个参数;如果不匹配,则返回后续参数...
### Oracle常用函数与使用方法详解 #### 一、Oracle SQL函数概述 在Oracle数据库中,SQL函数被广泛用于处理各种数据类型,包括数值、字符、日期等,它们能够帮助我们更高效地进行数据检索和分析。本文将详细介绍...
然而,在面对复杂的多条件组合统计需求时,`DECODE`函数的应用可能会变得相对繁琐,这时往往更倾向于使用`CASE WHEN`语句或创建视图的方法来解决。不过,如果出于特定原因需要坚持使用`DECODE`函数,那么了解如何...
【Oracle使用CASE判断解决多值问题】 在Oracle数据库中,面对多值判断的场景,我们经常需要对数据进行复杂的逻辑处理。在这个问题中,我们有一个专业表ZY_TAB,包含专业名称(ZY_NAME),专业代码(ZY_CODE),专业类型...
DECODE函数是数据库管理系统,尤其是Oracle数据库中常用的一种解析函数,它主要用于在处理数据时进行条件判断和赋值。...但同时也要根据所使用的数据库系统选择合适的方法,因为并非所有系统都提供DECODE函数。
在MySQL中,由于没有`DECODE`函数,我们可以使用`CASE`语句来达到相同的效果: ```sql select sum(case when c = '1' then A else B end) from tmp; ``` 这里,`CASE`语句在`c`等于'1'时返回`A`列的值,否则返回`B...
Oracle提供了多种方法来处理空值,包括使用NVL、NVL2、COALESCE函数,以及CASE和DECODE语句。下面将详细介绍这些方法及其应用场景。 ### 1. NVL函数 NVL(expr1, expr2)函数用于替换空值。当expr1为NULL时,NVL函数...