189 8069 5689

oracle里判断怎么写 oracle判断以什么开头

oracleif判断语句

oracle的if语句采用decode函数。

创新互联长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为宝应企业提供专业的网站设计制作、网站设计,宝应网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

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

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

Oracle数据库是对标准sql语言的过程化扩展,因此产生了pl/sql语言。其中的if语句大量使用使得程序模块化的功能方便实用。现在要讨论的是if语句的基本使用方法。

连接数据库

请输入用户名:  scott/123456

设置环境变量

SQL set serveroutput on

定义两个字符串变量,然后赋值,接着使用if……then语句比较两个字符串变量的长度,并输出比较结果。

declare

a varchar(10);

b varchar(10);

begin

a:='beijing';

b:='guangdong';

if length(a)length(b)

then dbms_output.put_line('ab');

end if;

end;

过if……then……else语句实现只有年龄大于等于56岁,才可以申请退休,否则程序会提示不可以申请退休。

declare

a number(10);

begin

a:=x;

if a=56

then dbms_output.put_line('可以申请退休');

else dbms_output.put_line('不可以申请退休');

end if;

end;

制定一个月份数值,然后使用if……then……elsif语句判断它所属的季节,并输出季节信息。

declare

mon number(10);

begin

mon:=x;

if mon=3 or mon=4 or mon=5

then dbms_output.put_line('春节');

elsif mon=6 or mon=7 or mon=8 then dbms_output.put_line('夏季');

elsif mon=9 or mon=10 or mon=11 then dbms_output.put_line('秋季');

elsif mon=12 or mon=1 or mon=2 then dbms_output.put_line('冬季');

end if;

end;

制定一个季度数值,然后使用case语句判断它所包含的月份信息并输出。

declare

ss number(10);

begin

ss:=x;

case

when ss=1 then dbms_output.put_line('包含月份3,4,5');

when ss=2 then dbms_output.put_line('包含月份6,7,8');

when ss=3 then dbms_output.put_line('包含月份9,10,11');

when ss=4 then dbms_output.put_line('包含月份12,1,2');

end case;

end;

oracle数据库条件判断的查询语句怎么写

建表,测试数据:

create table test

(收款标志 int)

insert into test values (1);

insert into test values (1);

insert into test values (1);

commit;

执行:

select case

when a.cnt = b.cnt then

'未收款'

when a.cnt = d.cnt then

'已收款'

when c.cnt  0 then

'部分收款'

end 收款状态

from (select count(*) cnt from test) a,

(select count(*) cnt from test where 收款标志 = 1) b,

(select count(*) cnt from test where 收款标志 = 2) c,

(select count(*) cnt from test where 收款标志 = 3) d

结果:

然后你自己换点其他数据测试一下吧,思路就这么个思路了。

oracle查询判断怎么写

SELECT

distinct id,state,name

FROM

table1 main

WHERE

NOT EXISTS( select 1 FROM table1 sub where main.id=sub.id AND main.statesub.state);

未经测试。。。纯属手写,,如果以自己多年经验来说的话。。这段话应该不会有多大问题。。。希望你自己仔细测试之后能够提出宝贵意见!!!

oracle查询语句条件判断怎么写

好像是标准sql吧,就这么写啊。不过大表可不能这么做哦,太占资源了。

补充:

oracle里面有“+”的,不过我怀疑你是不是要拼两个字符串。正统数据库,包括oracle和db2拼接字符串都是采用双竖线“||”,加号只能用于使两个整型或者浮点型数值相加。

这需要看你的相关字段的类型的。如果是数值型,需要首先转换为字符型,再合并,例如:

select

*

from

a

where

to_char(col001)||to_char(col002)

not

in

(select

to_char(col001)||to_char(col002)

from

b)

如果是字符型,可以直接合并:

select

*

from

a

where

col001||col002

not

in

(select

col001||col002

from

b)

如果是date型,同样转换为字符,具体查手册。

但是你这种写法,怎么说呢,不太好把,首先这并不是严格按照你所描述的逻辑,举例来说,如果表a字段是:"12","3",表b是:"1","23"那又会怎样?另外,not

in总是执行全表扫描,效率不高,这样写会好一些:

select

a.*

from

a

left

join

b

on

(a.col001

=

b.col001

and

a.col002

=

b.col002)

where

b.col002

is

null

oracle中判断语句怎么写?

是存储过程里面的 IF/ELSE ? 还是简单的 DECODE ?

SQL DECLARE

2 testvalue INT;

3 BEGIN

4 testvalue := 100;

5

6 IF testvalue 100 THEN

7 dbms_output.put_line( '100+' );

8 ELSIF testvalue = 100 THEN

9 dbms_output.put_line( '100' );

10 ELSE

11 dbms_output.put_line( '100-' );

12 END IF;

13

14 END;

15 /

100

PL/SQL procedure successfully completed.

SQL SELECT

2 DECODE(GROUPING(sale_item), 1, 'ALL', sale_item) AS iten,

3 SUM(sale_money) AS money

4 FROM

5 sale_report

6 GROUP BY

7 ROLLUP(sale_item);

ITEN MONEY

------ ----------

A 733285

B 2382

C 5738

ALL 741405


名称栏目:oracle里判断怎么写 oracle判断以什么开头
文章来源:http://cdxtjz.com/article/hjcjig.html

其他资讯