如何使用Oracle的Decode函数进行多值判断

转载 2007年09月23日 13:10:00
Decode函数的语法结构如下:
decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)

decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)


decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
以下是一个简单测试,用于说明Decode函数的用法:

 SQL> create table t as select username,default_tablespace,lock_date from dba_users;

Table created

SQL> select * from t;

USERNAME                       DEFAULT_TABLESPACE             LOCK_DATE
------------------------------ ------------------------------ -----------
SYS                            SYSTEM                        
SYSTEM                         SYSTEM                        
DBSNMP                         SYSTEM                        
SCOTT                          SYSTEM                        
OUTLN                          SYSTEM                         2007-7-30 1
WMSYS                          SYSTEM                         2007-7-30 1
ORDSYS                         SYSTEM                         2007-7-30 1
ORDPLUGINS                     SYSTEM                         2007-7-30 1
MDSYS                          SYSTEM                         2007-7-30 1
CTXSYS                         DRSYS                          2007-7-30 1
XDB                            XDB                            2007-7-30 1
ANONYMOUS                      XDB                            2007-7-30 1
WKSYS                          DRSYS                          2007-7-30 1
WKPROXY                        DRSYS                          2007-7-30 1
ODM                            ODM                            2007-7-30 1
ODM_MTR                        ODM                            2007-7-30 1
OLAPSYS                        CWMLITE                        2007-7-30 1
RMAN                           TOOLS                          2007-7-30 1
HR                             EXAMPLE                        2007-7-30 1
OE                             EXAMPLE                        2007-7-30 1

USERNAME                       DEFAULT_TABLESPACE             LOCK_DATE
------------------------------ ------------------------------ -----------
PM                             EXAMPLE                        2007-7-30 1
SH                             EXAMPLE                        2007-7-30 1
QS_ADM                         EXAMPLE                        2007-7-30 1
QS                             EXAMPLE                        2007-7-30 1
QS_WS                          EXAMPLE                        2007-7-30 1
QS_ES                          EXAMPLE                        2007-7-30 1
QS_OS                          EXAMPLE                        2007-7-30 1
QS_CBADM                       EXAMPLE                        2007-7-30 1
QS_CB                          EXAMPLE                        2007-7-30 1
QS_CS                          EXAMPLE                        2007-7-30 1

30 rows selected

SQL> select username,decode(lock_date,null,'unlocked') status from t;

USERNAME                       STATUS
------------------------------ --------
SYS                            unlocked
SYSTEM                         unlocked
DBSNMP                         unlocked
SCOTT                          unlocked
OUTLN                         
WMSYS                         
ORDSYS                        
ORDPLUGINS                    
MDSYS                         
CTXSYS                        
XDB                           
ANONYMOUS                     
WKSYS                         
WKPROXY                       
ODM                           
ODM_MTR                       
OLAPSYS                       
RMAN                          
HR                            
OE                            

USERNAME                       STATUS
------------------------------ --------
PM                            
SH                            
QS_ADM                        
QS                            
QS_WS                         
QS_ES                         
QS_OS                         
QS_CBADM                      
QS_CB                         
QS_CS                         

30 rows selected

HowTo:如何使用Oracle的Decode函数进行多值判断

Decode函数的语法结构如下: decode (expression, search_1, result_1)decode (e...
  • roso99
  • roso99
  • 2006年08月24日 10:23
  • 723

oracle sign函数解决大于小于的decode写法

select decode(sign(colA - colB) , -1 , colA + colB , colA) from table_namesign函数返回-1 , 0 , 1分别标识小于 ,...
  • gahaya
  • gahaya
  • 2012年11月17日 09:31
  • 4992

数据清洗小记(15):DECODE利用sign函数做大小值判断

【背景】 对某业务数据处理时,需要判断两个数据字段的大小,保留较大的数据存入到指定字段下面。考虑使用decode函数和sign函数来实现这个目的。【解决】1、decode(条件,值1,翻译值1,值2...
  • huangyanlong
  • huangyanlong
  • 2015年12月28日 16:26
  • 2664

oracle最强大函数之一decode函数的使用

decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值...
  • weeknd
  • weeknd
  • 2017年05月04日 00:48
  • 8258

oracle/plsql中decode()函数用法

在Oracle/ PLSQL的,DECODE函数有一个IF - THEN - ELSE语句的功能。 DECODE函数的语法是: decode( expression , search , resu...
  • suntanyong88
  • suntanyong88
  • 2014年10月02日 09:29
  • 6415

oracle中decode函数的使用

DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,.....
  • xiabonihao
  • xiabonihao
  • 2016年11月15日 09:22
  • 623

sql语句中decode()函数的嵌套(oracle)

一个值根据某个规则以另一种形式展现可用decode()方法, decode(columnname,值1,翻译值1,值2,翻译值2,……缺省值) 举例: 表Test_user: ...
  • ouyn8
  • ouyn8
  • 2015年04月15日 14:42
  • 1487

[Oracle] decode 函数及其用法

DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默...
  • oscar999
  • oscar999
  • 2014年01月17日 17:54
  • 27611

Oracle 高级查询sql DECODE函数 分组函数

计算职位的人数,其中,“ANALYST”和“MANAGER”职位用“VIP”表示,其余是普通员工,职位用“OPERATION”显示。分别计算VIP职位和普通职员职位的人数,数据显示效果如图-1所示。 ...
  • nuliPerfect
  • nuliPerfect
  • 2016年07月30日 16:30
  • 1400

oracle中 decode()函数简介

今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈!...
  • young_kim1
  • young_kim1
  • 2015年07月14日 16:46
  • 1744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何使用Oracle的Decode函数进行多值判断
举报原因:
原因补充:

(最多只允许输入30个字)