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







相关文章推荐

C#if/if-else/if-else-if语句

通常语句在程序中都是按照先后顺序执行,这样的程序流程是线性的。如果要改变程序的流程,可以在程序中使用控制语句来有条件地选择执行语句或重复执行某个语句块。 程序控制语句用于改变程序执行的顺序。 控制...

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

1、标准sql规范 一、单个IF 1、 if a=... then ......... end if; 2、 if a=... then ...... else .... end...

JS if else 高级写法

首先出个题:如图: 假设对成长速度显示规定如下: 成长速度为5显示1个箭头; 成长速度为10显示2个箭头; 成长速度为12显示3个箭头; 成长速度为15显示4个箭头; 其他都显示都显示0各...

Oracle IF语句的使用

IF语句的使用A.基本的IF条件语句:基本语法: 程序代码IF THEN  END IF;Example: 程序代码SQL> set serveroutput on;SQL> declare    x...

Oracle控制语句(if , loop , while , for)

--if...then...elsif..then.. else...end if declare    num integer;    inputno number(10); begin    in...

ORACLE IF ELSEIF的写法

ORACLE不同其他sql语法,其中一点就很明显,也是让人郁闷的地方,就是ORACLE的IF ELSEIF语法,ORACLE的这个语法是这样的:IF XXX ELSIF XXX END IF;,注意红...

oracle if 和 case语句的使用

oracle if语句和case语句的使用例子 --------------------if---------------------------- set serveroutput on  ...

Oracle if else 语句的写法实例

接收contract_no和item_no值,在inventory表中查找,如果产品: 已发货,在arrival_date中赋值为今天后的7天 已订货,在arrival_date中赋值为今天后...

Python 列表推导式 一些小的古怪写法 if else for in join

c = a if a>b else b //如果a>b返回a,否则返回b>>> a = 1 >>> b = 2 >>> c = a if a>b else b >>> c 2c = [b,a][...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle中if/else功能的实现的3种写法
举报原因:
原因补充:

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