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

      Oracle Decode()函数和CASE语句都是我们经常用到的,那么它们的区别在哪里呢?下面就为您详细介绍       

     Oracle Decode()函数和CASE语句的区别,供您参考。

  首先,举2个简单的例子,简单对比一下这2者的区别。

  1.CASE语句:

  以下是代码片段:

  SELECT CASE SIGN(5 - 5)

WHEN 1 THEN 'Is Positive'

WHEN -1 THEN 'Is Negative'

ELSE 'Is Zero' END

FROM DUAL;

  后台实现:

  以下是代码片段:

  if (SIGN(5 – 5) = 1) {

'Is Positive';

} else if (SIGN(5 – 5) = 2 ) {

'Is Negative';

}else {

‘Is Zero’

}

  2. Decode函数:

  以下是代码片段:

  SELECT DECODE(SIGN(5 – 5), 1,

'Is Positive', -1, 'Is Negative', ‘Is Zero’)

FROMDUAL

  后台实现:

  以下是代码片段:

  switch ( SIGN(5 – 5) )

{

case 1 : 'Is Positive'; break;

case 2 : 'Is Negative'; break;

default : ‘Is Zero’

}

  在上面的例子中,2者似乎都可以实现。但是,在碰到非凡的问题时Decode()要实现起来就相当复杂了。

  例如:

  以下是代码片段:

  SELECT CASE X-FIELD

WHEN X-FIELD < 40 THEN ‘X-FIELD < 40’

WHEN X-FIELD < 50 THEN ‘X-FIELD < 50’

WHEN X-FIELD < 60 THEN ‘X-FIELD < 60’

ELSE ‘UNBEKNOWN’END

FROM DUAL

  因此,个人认为,CASE语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时,用Decode更为简洁。

时间: 2024-12-31 01:48:47

Oracle Decode()函数和CASE语句的比较的相关文章

Oracle DECODE函数语法使用介绍_oracle

Oracle DECODE函数功能很强,下面就为您详细介绍Oracle DECODE函数的用法,希望可以让您对Oracle DECODE函数有更多的了解. Oracle DECODE函数 Oracle DECODE函数是Oracle公司独家提供的功能,它是一个功能很强的函数.它虽然不是SQL的标准,但对于性能非常有用.到目前,其他的数据库供应商还不能提供类似DECODE的功能,甚至有的数据库的供应商批评Oracle的SQL不标准.实际上,这种批评有些片面或不够水平.就象有些马车制造商抱怨亨利.福

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

今天上头要求做一个类似的功能,初步想到的列转行,但是如何实现也没有什么好办法,这个函数不错 DECODE函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.DECODE有什么用途 呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 中的工资字段值? select salary into var-salary

oracle里面如何写case语句

oracle|语句 出处:  CSDN - 技术社区 - Oracle 基础和管理问题 如下:SELECT LogID,UserID,LogTime,Url,Description,(case OperateType when OperateType = 0 then '新增'  when OperateType=1 then '修改' else '删除' end case)  FROM LOG ???? 1. caseSELECT LogID,UserID,LogTime,Url,Descri

oracle中decode函数的用法

oracle函数库中提供了很多有用的函数,比如nvl,sign,round等,其中用得比较多的,功能比较大的还是decode这个函数.这个函数的用法如下: decode(表达式,条件1,结果1,条件2,结果2,...)中间有几个条件与结果根据个人而定,如 decode(sign(100-20),1,20,-1,100)意思是说当(100-20)大于零时,结果为20,而当(100-20)小于零时,结果为100,其中的sign只是一个判断符号的函数 假如要对一个企业的员工进行工资调整,对于3000块

oracle中decode函数与abs、sign、trunc、substr函数的混合使用

decode()函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.(但其不是标准SQL函数,不过这也正是他的优点,其他数据库中提供不了如此强大的函数.) 功能: 1. 流程控制,相当于IF-THEN-ELSE功能.  用法如下:decode( expression , search , result [, search , result]... [, default] ) expression 要比较的表

oracle/plsql中decode()函数用法

在Oracle/ PLSQL的,DECODE函数有一个IF - THEN - ELSE语句的功能. DECODE函数的语法是: decode( expression , search , result [, search , result]... [, default] ) expression值进行比较. search 是对表达相比的价值. result是返回的值,如果表达式等于搜索. default 是可选的.如果没有找到匹配,解码将返回默认值.如果省略了默认,然后解码语句将返回null(如

Oracle数据库Decode()函数的使用方法

DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值. DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值. 区别于SQL的其它函数,DECODE函数还能识别和操作空值.

oracle中decode函数

  DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值 DECODE(T1.STATUS, '96', '救援完成', '97', '拖车完成', '98', '终止/自解', '') 施救结果

oracle函数赋值判断语句

问题描述 oracle函数赋值判断语句 作为一个新手自己定义了个函数发现老是有一个错误: create or replace function gd2(account in gt.account%TYPE,password in GT.PASSWORD%TYPE) return VARCHAR2 is begin if(gd(account ,password)==1)then dbms_output.put_line('登陆成功'); else dbms_output.put_line('不存