`
guochongcan
  • 浏览: 326984 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle中sign函数、decode函数、case函数

 
阅读更多

sign函数介绍

 

        取数字n的符号,大于0返回1,小于0返回-1,等于0返回0
 SQL> select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;   
SIGN(123 ) SIGN(- 100 )   SIGN( 0 )  
--------- ---------- ---------  
    1            - 1           0   
Java代码
SQL> select sign(100),sign(-100),sign(0) from dual;  
 
SIGN(123) SIGN(-100)   SIGN(0)  
--------- ---------- ---------  
    1           -1         0

 

 

=========================================================

 

decode函数介绍

        假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:

  select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary) from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。 需要注意的是,这里的if、then及else 都可以是函数或计算表达式。

 

case函数介绍

 

case 是SQL国际标准就有的,他的作用就是实现条件语句(如同一般计算机语言中的if和switch……case)按照不同的使用方法case有两种语法:
1.简单case语法是
就是实现相当于一般计算机语言中switch……case样式的,格式是
case 变量表达式              --对某个‘变量表达式’进行判断
when 值                      --当‘变量表达式’是某个‘值’时
then 返回值表达式            --返回‘返回值表达式’值
[when...
then...
.....]                       --可以进行多次判断
[else 其他情况返回值表达式]  --不符合所有when后面的就是其他情况了
end                          --结束

举例,比如一个表的sex列用M表示男性,F表示女性,现在不要返回MF而是想返回男女就可以:
select (case sex when 'M' then '男' when 'F' then '女' end) from 表
2 case搜索函数
就是实现相当于一般计算机语言中if……elseif……样式的,格式是
case                       --case后面没有表达式表示使用的是搜索函数
when 条件                  --条件就是布尔表达式,也就判断语句
  then 返回值表达式        --条件为真时的返回该表达式值
[when ...
  then ...
.........]                 --可以进行多次判断
[else 其他情况返回值表达式]--不符合所有when后面的就是其他情况了
end                        -- 结束

同样的以性别为例
select (case when sex='M' then '男'  when sex = 'F' then '女' end) from 表

分享到:
评论

相关推荐

    Oracle 中 decode 函数用法

    Oracle中的DECODE函数是一种非常实用的工具,它允许你在SQL查询中执行简单的条件判断和返回相应的值。这个函数类似于IF-THEN-ELSE语句的简写形式,减少了编写复杂逻辑的代码量,使得SQL语句更加简洁易读。 DECODE...

    Oracle高级操作函数学习笔记

    DECODE函数是Oracle中的一个条件分支函数,它的功能类似于编程语言中的if-else if-else语句。DECODE函数的格式为: ``` DECODE(字段或表达式, 值1, 结果1, 值2, 结果2, ... , 默认结果) ``` 如果字段或表达式的值...

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

    Oracle数据库中的`Decode()`函数和`CASE`语句都是用于条件判断和数据转换的重要工具,它们各有特点,适用场景也有所不同。以下是对这两个功能的详细比较。 首先,`Decode()`函数是一个简化的条件表达式,它允许你在...

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

    Oracle中的DECODE函数是一个非常实用的工具,它允许我们在SQL查询中进行条件判断,并返回相应的值。DECODE函数的基本语法如下: ```sql DECODE(value, if1, then1, if2, then2, ..., else) ``` 1. **DECODE用于...

    decode函数.pdf

    Decode函数是Oracle数据库中用于实现条件逻辑的一个内置函数,它类似于编程语言中的switch-case语句或if-then-else语句。Decode函数可以对给定的表达式进行多个条件判断,并返回匹配条件的相应值。Decode函数广泛...

    Oracle常用函数

    1. **DECODE函数**: DECODE函数用于根据提供的条件返回不同的值。它类似于if...else语句的简写形式。例如,`DECODE(column, value1, result1, value2, result2, ..., default_result)`,如果`column`等于`value1`...

    decode函数借鉴.pdf

    DECODE 函数的应用非常广泛,例如,在 Oracle 系统中就有许多数据字典是使用 DECODE 思想设计的,比如记录会话信息的 V$SESSION 数据字典视图。我们可以使用 DECODE 函数来实现表的转置,例如: select sid, serial...

    Oracle函数大全.pdf

    在Oracle数据库中,函数是一类预定义的子程序,它可以对输入参数执行运算,并返回一个结果值。Oracle提供了一系列的函数,用于处理不同类型的数据,如字符串、数字、日期和时间等。下面按照文档所提供的内容,详细...

    Oracle常用函数和使用方法

    #### 二、DECODE函数:条件判断与转换 **功能描述**:`DECODE`函数用于实现多条件判断,类似于编程语言中的`switch-case`语句。其语法如下: ``` DECODE(条件, 值1, 翻译值1, 值2, 翻译值2, ..., 值n, 翻译值n, ...

    ORACLE函数及其用法

    本文将详细介绍Oracle中的一些常用函数及其应用场景。 #### 数值型函数 1. **ABS(X)**:此函数返回X的绝对值。例如,如果X为-5,则返回5。 2. **CEIL(X)**:该函数返回大于或等于X的最小整数。例如,如果X为3.2...

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

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

    oracle常用函数

    下面将详细解释标题和描述中提到的部分Oracle函数及其应用场景。 #### 1. 取系统时间和日期相关函数 - `SYSDATE`: 返回系统的当前日期和时间。 - 示例:`SELECT SYSDATE FROM DUAL;` - `LAST_DAY`: 返回指定日期...

    oracle高级应用基础.pdf

    例如,`DECODE`函数允许用户在SQL查询中进行条件判断,类似于其他编程语言中的switch-case语句。它可以在查询中根据字段值的不同返回不同的结果。同样,Oracle中的`CASE`语句也可以实现类似的条件逻辑判断。`SIGN`...

    Oracle_Database_11g完全参考手册.part3/3

    第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 分区 第19章 Oracle基本安全 第Ⅲ部分 高级主题 第20章 高级安全性-虚拟专用数据库 第21章 高级安全性:透明数据加密...

    Oracle_Database_11g完全参考手册.part2/3

    第16章 DECODE和CASE.SQL中的if-fhen-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 分区 第19章 Oracle基本安全 第Ⅲ部分 高级主题 第20章 高级安全性-虚拟专用数据库 第21章 高级安全性:透明数据加密...

    编程学习笔记(数据库,C#)

    本文将主要探讨DECODE函数的用法、Oracle数据库中的SUBSTR函数以及正则表达式的语法。 1. **DECODE函数**: DECODE函数在数据库查询中常用于条件判断和返回对应结果。它允许你根据输入值与一系列预设值进行比较,...

    Oracle行列转换_总结

    此外,还可以使用 `DECODE` 函数与 `SIGN()` 结合来比较字段大小,如: ```sql SELECT DECODE(SIGN(字段1 - 字段2), -1, 字段3, 字段4) FROM dual; ``` 这可以帮助在没有 `CASE WHEN` 的情况下执行简单的条件判断。 ...

    oracle常用语法

    窗口函数在Oracle中是一种非常强大的工具,可以对结果集进行排序并分配排名。`RANK()` 函数是其中一种,它为每个行分配一个唯一的等级值。如果多行具有相同的排序键,则它们将获得相同的排名,而下一个等级将跳过...

Global site tag (gtag.js) - Google Analytics