oracle怎么实现判断 Oracle判断语句

oracleif判断语句

oracle的if语句采用decode函数。

广西网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联公司自2013年起到现在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中怎么判断一个日期是否在一定时间范围内

这个属于oracle时间函数的用法

在oracle里,日期格式是一种特殊的东西

这里有一个日期转换函数

select to_char(日期,'yyyy-mm-dd hh24:mi:ss') from tablename;

这里的to_char就是将日期型转换成字符型的一个函数,转换成的格式就是

2010-08-23 17:51:20

当然你可以将这个日期转换成其他,如:

select to_char(日期,'yyyy-mm-dd') from tablename;

查出来的结果2010-08-23

所以你要根据这个日期来查东西就可以这么用

select * from tablename where to_char(日期,'yyyymmdd')between '20100801' and '20100823'

这个就是查日期8月1日到8月23日的数据

select * from tablename where to_char(日期,'yyyymmdd') = '20100801'

这个就是查8月1日的数据

其他不懂的你再问吧

-------补充------

你把你写的东西粘贴一下,也好帮你分析啊

你后边的" + model.Csrq + "参数传进来的是什么东西?

---------补充2-------

'yyyy-mm-dd 24hi:mi:ss'

这个地方错了,应改成

'yyyy-mm-dd hh24:mi:ss'

不是24hi

oracle判断是否是数字

oracle判断是否是数字有以下三种方法:

1、自定义存储过程,利用 to_number函数实现

CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)

RETURN NUMBER

IS

v_str FLOAT;

BEGIN

IF str IS NULL

THEN

RETURN 0;

ELSE

BEGIN

SELECT TO_NUMBER (str)

INTO v_str

FROM DUAL;

EXCEPTION

WHEN INVALID_NUMBER

THEN

RETURN 0;

END;

RETURN 1;

END IF;

END isnumeric;

2. 自定义存储过程,利用 正则表达式函数regexp_like 实现

CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)

RETURN NUMBER

IS

BEGIN

IF str IS NULL

THEN

RETURN 0;

ELSE

IF regexp_like (str, '^(-{0,1}+{0,1})[0-9]+(.{0,1}[0-9]+)$')

THEN

RETURN 1;

ELSE

RETURN 0;

END IF;

END IF;

END isnumeric;

3. 自定义过程,利用 TRANSLATE函数实现

CREATE OR REPLACE FUNCTION isnumeric (str IN VARCHAR2)

RETURN NUMBER

IS

v_str VARCHAR2 (1000);

BEGIN

IF str IS NULL

THEN

RETURN 0;

ELSE

v_str := TRANSLATE (str, '.0123456789', '.');

IF v_str = '.' OR v_str = '+.' OR v_str = '-.' OR v_str IS NULL

THEN

RETURN 1;

ELSE

RETURN 0;

END IF;

END IF;

END isnumeric;

oracle 如何判断数字字串中是否含有英文字母 如题!

简单的:一条语句搞定,SqlPlus里面select decode(length(replace(translate('字符串的值','0123456789.',' '),' ','')),0,'is number','is not a number') from dual; 麻烦点的:写function在oracle数据库中,create or replace function f_str_or_num(str varchar2) return varchar2 is

2 v_num number;

3 v_return varchar2(60);

4 begin

5 v_num:=to_number(str);

6 v_return:=str||' is a number string!';

7 return v_return;

8 exception when others then

9 v_return:=str||' is not a number string!';

10 return v_return;

11 end f_str_or_num; 然后调用select f_str_or_num('字符串的值) from dual;


当前文章:oracle怎么实现判断 Oracle判断语句
本文地址:http://hbruida.cn/article/hhiccg.html