`

decode函数的用法

 
阅读更多

decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
【功能】根据条件返回相应值
【参数】c1, c2, ...,cn,字符型/数值型/日期型,必须类型相同或null
注:值1……n 不能为条件表达式,这种情况只能用case when then end解决

·含义解释:  
  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
  
或:
  when case 条件=值1 THEN
  RETURN(翻译值1)
  ElseCase 条件=值2 THEN
  RETURN(翻译值2)
  ......
  ElseCase 条件=值n THEN
  RETURN(翻译值n)  
  ELSE
  RETURN(缺省值)
  END


【示例】
  ·使用方法:  
  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);

分享到:
评论

相关推荐

    关于decode函数的使用

    ### 关于decode函数的使用详解 #### 函数概述 `decode()`函数在SQL语言中是一种常用的条件函数,它可以根据指定的表达式返回不同的值。这种功能对于数据转换、分类统计等场景非常有用。 #### 主要作用 `decode()`...

    Oracle 中 decode 函数用法

    DECODE函数还可以与其他函数结合使用,例如`LPAD`,用于在输出前填充零,确保数据的格式一致。例如,如果你有一个自增的主键,想在输出时自动加1并前面补零,可以这样做: ```sql SELECT LPAD(DECODE(COUNT(记录编号...

    ORACLE 列转行 DECODE函数用法

    下面我们将详细讲解DECODE函数的使用方法以及如何在列转行操作中应用它。 DECODE函数的基本语法如下: ```sql DECODE(column, value1, result1, value2, result2, ..., default_result) ``` 这里`column`是要检查的...

    关于oracle decode函数的用法

    在商品销售表`sale`的转化示例中,使用了DECODE函数来将每月的销售数据从行转为列,形成年份为行,各月销售金额为列的新结构。例如,为了计算每年1月的销售总额,使用了`SUM(DECODE(SUBSTRB(month,5,2),'01',sell,0)...

    oracle的decode函数

    为了更好地理解`DECODE`函数的使用方法,我们来看一个具体的例子。假设有一个名为`checkup`的表,其中包含`checkup_type`和`blood_test_flag`两个字段,`blood_test_flag`用于标识是否进行了血液测试,其中`Y`表示...

    decode函数[归类].pdf

    DECODE函数是Oracle PL/SQL中的一个独特特性,它在软件开发,尤其是数据库查询中,提供了一种简洁而高效的方法来进行条件判断和数据转换。这个函数在Oracle SQL中扮演了if-then-else逻辑的角色,允许开发者在SQL查询...

    Decode函数的用法(视图)

    要按学生ID分别显示语文、数学、英语的成绩,可以创建一个视图,使用`DECODE`函数将成绩列转换为单独的列。 创建视图的脚本如下: ```sql CREATE OR REPLACE VIEW cjd AS SELECT sid, DECODE(kcbm, '语文', cj,...

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

    以下将详细介绍`DECODE`函数的使用方法及其示例。 1. **基本用法** `DECODE`函数的基本形式如下: ```sql DECODE(value, if1, then1, if2, then2, ..., else) ``` 这个函数的意思是:如果`value`等于`if1`,则...

    oracle中decode函数的使用方法

    `DECODE`函数的灵活性在于它可以处理多个可能的值,并且可以与其它函数如`LPAD`结合使用,增加数据处理的复杂性,如在生成自动递增的序列号并添加前导零: ```sql SELECT LPAD(DECODE(COUNT(记录编号), 0, 1, MAX...

    php session_decode函数用法讲解

    php session_decode函数怎么用? 作用:解码会话数据 语法: bool session_decode ( string $data ) 参数: data, 编码后的数据。 说明: session_decode() 对 $data 参数中的已经序列化的会话数据进行解码, 并且...

    Oracle中Decode()函数使用技巧

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

    decode函数与case when 的妙用

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

    Oracle中Decode()函数的有关用法

    ### Oracle中Decode()函数的有关用法 #### 一、Decode()函数简介 在Oracle数据库中,`DECODE()`函数是一种非常实用的功能,主要用于条件判断并返回特定的值。它提供了一种简单的方法来实现多分支逻辑判断,尤其是...

    decode用法

    Oracle 中 decode 函数用法 含义解释: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: IF 条件=值1 THEN  RETURN(翻译值1) ELSIF 条件=值2 THEN  RETURN(翻译值2)  ...... ...

    decode解码函数

    在ASP(Active Server Pages)环境中,可以使用内置的`Server.URLEncode`函数进行URL编码,而解码则可以使用`Server.URLDecode`函数。`Server.URLDecode("编码后的字符串")`会返回解码后的原始字符串。例如,如果有...

    SQL语句的DECODE和NVL

    本文将详细介绍 DECODE 和 NVL 函数的使用方法和实践应用。 一、DECODE 函数 DECODE 函数是 Oracle 公司独家提供的功能,它是一个功能很强的函数,可以实现复杂的逻辑判断和数据处理。DECODE 函数的语法如下: ...

Global site tag (gtag.js) - Google Analytics