`
houday123
  • 浏览: 217275 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

decode函数使用技巧

阅读更多
decode()函數使用技巧
·软件环境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安装路径为:C:\ORANT
·含义解释:
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)),
    sum(decode(substrb(month,5,2),'05',sell,0)),
    sum(decode(substrb(month,5,2),'06',sell,0)),
    sum(decode(substrb(month,5,2),'07',sell,0)),
    sum(decode(substrb(month,5,2),'08',sell,0)),
    sum(decode(substrb(month,5,2),'09',sell,0)),
    sum(decode(substrb(month,5,2),'10',sell,0)),
    sum(decode(substrb(month,5,2),'11',sell,0)),
    sum(decode(substrb(month,5,2),'12',sell,0))
    from sale
    group by substrb(month,1,4);
分享到:
评论

相关推荐

    Oracle中Decode()函数使用技巧

    下面将详细介绍Oracle Decode()函数的使用技巧。 1. **基本语法**: Decode()函数的基本语法如下: ``` DECODE(source, value1, result1, value2, result2, ..., default_value) ``` 其中,`source`是要检查的...

    decode函数与case when 的妙用

    在阅读博客文章《decode函数与case when 的妙用》时,作者可能分享了一些具体的示例和使用技巧,帮助我们更好地理解和掌握这两种方法。通过学习和实践,我们可以将这些知识应用于日常的数据库操作,优化数据处理流程...

    Oracle常用函数及实例.pdf

    本文主要探讨了Oracle中的一些常用函数,并通过实例解析了它们的基本用法,特别介绍了DECODE函数的使用技巧。 首先,我们来看数字函数。在Oracle中,ABS(x)函数用于计算数值的绝对值,例如ABS(-10)返回10。CEIL(x)...

    php5.2以下版本无json_decode函数的解决方法

    在早期的PHP版本中,尤其是PHP5.2以下的版本,并没有内置json_decode这个...这样的解决方案虽然可以弥补PHP的不足,但也提醒开发者在升级PHP版本时,要尽快使用官方提供的json_decode函数,确保代码的健壮性和安全性。

    mp4v2_decode

    在使用mp4v2_decode时,我们需要熟悉其提供的主要函数和结构体。例如,`MP4FileHandle`是与MP4文件交互的核心接口,通过`MP4ReadFile`函数打开文件;`MP4GetMovieTimeScale`可以获取电影的时间比例,这对于时间同步...

    ORACLE函数大全与整理

    二、Oracle函数使用技巧 1. 在使用函数时,需注意函数的参数类型和返回类型,确保数据类型的匹配,避免出现错误。 2. NVL()和NVL2()的区别在于,当第二个参数为NULL时,NVL2()会返回第三个参数的值,而NVL()则直接...

    Informatica_PowerCenter_V8函数功能使用指南.doc

    总之,《Informatica PowerCenter V8函数功能使用指南》是一份全面而详细的资源,涵盖了从基础到高级的所有函数使用技巧,对于任何希望精通Informatica PowerCenter V8的用户来说,都是不可或缺的参考资料。

    oracle 函数文档

    6. **转换函数**:TO_NUMBER用于将字符串转换为数值,DECODE函数提供了一种简单的条件判断,而CAST函数可以将一种数据类型转换为另一种。 7. **其他函数**:包括位运算函数(BITAND、BITOR等)、级联查询的CONNECT_...

    使用ROLLUP函数生成报表的小计、合计

    #### 三、高级技巧:使用GROUPING_ID函数标识汇总行 为了更直观地区分汇总行和普通行,可以结合使用`GROUPING_ID`函数。`GROUPING_ID`函数返回一个整数值,该值标识了当前行是基于哪个字段的汇总。 示例如下: ``...

    Oracle110个常用函数……PDF清晰版

    函数使用技巧与注意事项 - 在使用函数时,注意函数参数的数据类型和范围。 - 对于复杂的查询逻辑,可以使用子查询或嵌套函数来实现。 - 了解函数的性能特点,合理选择函数以提高查询效率。 - 利用函数组合解决更...

    php帮助文档,函数库

    这个“php帮助文档,函数库”压缩包是针对PHP学习者和开发者的重要资源,它包含了PHP的各种函数及相关的使用说明,对于理解和掌握PHP编程技巧具有极大的帮助。 PHP的函数库是其强大功能的核心,它提供了丰富的内置...

    oracle数据库[收集].pdf

    这段代码首先将`month`字段的前4个字符提取出来作为年份`year`,然后使用DECODE函数根据月份('01'到'12')计算每个月的销售总额,最后通过GROUP BY子句按年份进行分组。这样,原始数据就被转化为了一种更易于分析的...

    orcale数据库 行列互换

    在Oracle中,可以使用SQL的CASE语句或者DECODE函数来实现行转列。例如,在提供的描述中,我们看到一个例子是将学生的语文和数学分数从行转换为了列。 ```sql SELECT student AS '姓名', SUM(CASE name WHEN '语文'...

    Oracle 常用SQL技巧经典收藏

    2. **利用DECODE函数提高效率**:DECODE函数可以替代条件判断,减少重复扫描和连接。例如,如果你需要按部门统计Smith员工的数量和薪水,DECODE函数可以一次性完成,无需分别进行两次查询。DECODE还能应用于GROUP BY...

    Oracle SQL性能优化技巧大总结

    3. **优化效果**:通过使用DECODE函数可以避免重复的查询操作,从而减少处理时间。 #### 七、整合简单的无关联的数据库访问 **背景**:有时候多个简单的查询可以被整合到一个查询中。 **技巧详解**: 1. **合并...

Global site tag (gtag.js) - Google Analytics