oracle中的DECODE

原文:oracle中的DECODE

 

DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值. 
其具体的语法格式如下: 
DECODE(input_value,value,result[,value,result…][,default_result]); 
其中: 
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果 
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应 
result 是一组成序偶的结果值 
default_result 未能与任何一序偶匹配成功时,函数返回的默认值 
下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。 
SELECT checkup_type, 
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’) 
FROM checkup;

时间: 2024-12-21 09:30:23

oracle中的DECODE的相关文章

oracle中的decode的使用介绍_oracle

含义解释: 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 decode(字段或字段的运算,值1,值2,值3)        这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当然值1

Oracle中Decode()函数使用技巧

decode|oracle|函数|技巧 decode()函數使用技巧·软件环境: 1.Windows NT4.0+ORACLE 8.0.42.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 RETU

oracle中decode函数的使用方法_oracle

含义解释: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 IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当

Oracle中Kill session的研究

oracle|session Oracle中Kill session的研究   作者: Eygle link: http://www.eygle.com/faq/Kill_Session.htm 我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session 'sid,serial#' ;   被kill掉的session,状态会被标记为killed,Oracle会在该用户下一次touch时清除该进程

如何在ORACLE中實現人民幣大寫的轉換

oracle 如何在ORACLE中實現人民幣大寫的轉換 作者:   CCBZZP        ORACLE在實現報表的功能是很強大的, 特別在現實的應用中會經常用到人民幣大小寫轉換的問題, 在此我寫個函數向大家簡單介紹一下, 希望和大家一起探討, 以便共同進步! 共同發展! 1. 函數DX_MONEY() CREATE FUNCTION  DX_MONEY(  MONEY IN NUMBER)RETURN VARCHAR2 AS V_MONEY VARCHAR2(150);RV_MONEY0

Oracle中v$session和v$process的使用方法

查看当前session的sid和serial#: SYS@ORCL>select sid,serial#,status from v$session where sid=userenv('sid');     SID    SERIAL# STATUS ---------- ---------- --------      89          3 ACTIVE 查看当前session对应的spid: SYS@ORCL>select spid from v$process p, v$sess

ORACLE中死锁的知识点总结

  死锁的概念       什么是死锁呢? 其实我们生活中也有很多类似死锁的例子. 我先举一个生活中的例子:过年回家,父亲买了一把水弹枪,儿子和侄子争抢着要先玩,谁也不让谁,拆开包装后,一个抢了枪, 一个逮住了子弹和弹夹.两个都争着要先玩,但是都互不相让.结果两个人都玩不了.如果儿子要先玩,就必须让侄子把子弹和弹夹给他,如果侄子要先玩,就必须让儿子把枪给侄子.他们就这样对峙了十几分钟,互不相让. 我出来调停,让儿子把枪先给侄子玩,每个人玩十分钟.然后两个人开开心心一起玩起来.其实这就是一个活生生

Vertica的这些事<七>—— Vertica中实现Oracle中的ws_concat功能

vertica中没有类似Oracle中的ws_concat函数功能,需要开发UDF,自己对C++不熟悉,所有只有想其他方法解决了. 上代码: SELECT node_state, MAX(DECODE(row_number, 1, a.node_name)) || NVL(MAX(DECODE(row_number, 2, ',' || a.node_name)), '') || NVL(MAX(DECODE(row_number, 3, ',' || a.node_name)), '') ||

SQL语句中的case when语法以及Oracle中的类似方法

一.基本概念和例子 case when是sql语句的语法,而不是属于特定数据库的语言 方法一: select num,name, (case classnowhen '1' then '一班'when '2' then '二班'else '其他班级' end) as classname from student 方法二: select num,name, (case when classno = '1' then '一班'when classno = '2' then '二班'else '其他班