oracle中if/else功能的实现的3种写法

转载 2015年07月07日 11:03:18

经常会用到的,记录一下




1.case when

case when a='1'then 'aaa'
     when a='2' then 'bbb'
else
  'ccc'
end as name

注意点: 

1、以CASE开头,以END结尾
2、分支中WHEN 后跟条件,THEN为显示结果
3、ELSE 为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、END 后跟别名


2.decode

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。


3.标准sql规范if/else

一、单个IF
1、

if a=...  then
.........
end if;

2、

if a=... then
......
else
....
end if;

二、多个IF

if a=..  then
......
elsif a=..  then
....
end if;     
这里中间是“ELSIF”,而不是ELSE IF 。这里需要特别注意



另外 刚才写了个SQL 还用到 instr

需求是有个字段 zywfwzss里面可能存在,比如"税种:增值税,所属时期:XXXX" 的字符串,但是只需要提取税种的名称,即“增值税”,如果字段里没有税种,就直接是增值税

我是这样写的:

select case
when instr(zywfwzss,'税种:') >0
then substr(zywfwzss,instr(zywfwzss,':')+1 ,instr(zywfwzss,',')-instr(zywfwzss,':')-1)
else '增值税'
end as sz
from taxis_wfwz_sjdr







Oracle IF语句的使用

IF语句的使用A.基本的IF条件语句:基本语法: 程序代码IF THEN  END IF;Example: 程序代码SQL> set serveroutput on;SQL> declare    x...
  • xiaoxiong1212
  • xiaoxiong1212
  • 2010年07月05日 10:12
  • 93085

oracle中if/else功能的实现的3种写法

1、标准sql规范 一、单个IF 1、 if a=... then ......... end if; 2、 if a=... then ...... else .... end...
  • fangquan1980
  • fangquan1980
  • 2016年02月29日 10:32
  • 1276

Oracle中没有 if exists(...)

对于Oracle中没有 if exists(...) 的语法,目前有许多种解决方法,这里先分析常用的三种,推荐使用最后一种 第一种是最常用的,判断count(*)的值是否为零,如下 decla...
  • Hollboy
  • Hollboy
  • 2012年05月09日 15:20
  • 30517

ORACLE---IF 分支 中的NULL判断和自己做的过程中暴露的错误

---P1 DECLARE    V_NUMBER1 NUMBER;    V_NUMBER2 NUMBER;    V_Result  VARCHAR2(7); BEGIN    IF...
  • zhvsby
  • zhvsby
  • 2011年10月20日 17:26
  • 5479

Oracle SQL中的 IF ELSE

-- Start 大家对 IF ELSE 语句可能都很熟悉,它是用来对过程进行控制的。在 SQL 的世界中 CASE 语句有类似的效果。下面简单的介绍 CASE 语句的用法。考虑下面的情况,假设有个 ...
  • shangboerds
  • shangboerds
  • 2014年12月17日 22:32
  • 13787

oracle存储过程if-else if-else

create or replace procedure test as --建立游标 Cursor ss is select GROUP_NAME from SUMMARYLOG_LIST gr...
  • aline200
  • aline200
  • 2015年09月14日 16:03
  • 3165

Oracle中的if…else…

当if中什么也执行时,使用null;来代替if condition  null;else  null;  当需要使用多个判断条件时,使用elsif即 if……elsif……else……end if;...
  • goustzhu
  • goustzhu
  • 2010年12月02日 11:49
  • 410

oracle if else elsif 使用例子

--方式一 if exp1 then begin ... end; elsif exp2 then begin ... end; els...
  • firetaker
  • firetaker
  • 2010年06月13日 10:52
  • 33721

ORACLE IF ELSEIF的写法

ORACLE不同其他sql语法,其中一点就很明显,也是让人郁闷的地方,就是ORACLE的IF ELSEIF语法,ORACLE的这个语法是这样的:IF XXX ELSIF XXX END IF;,注意红...
  • lotusyangjun
  • lotusyangjun
  • 2011年03月08日 10:29
  • 5277

oracle if 和 case语句的使用

oracle if语句和case语句的使用例子 --------------------if---------------------------- set serveroutput on  ...
  • woshilys
  • woshilys
  • 2017年05月10日 15:16
  • 647
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle中if/else功能的实现的3种写法
举报原因:
原因补充:

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