重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
oracle判断为空是用is
创新互联是一家集网站建设,乌什企业网站建设,乌什品牌网站建设,网站定制,乌什网站建设报价,网络营销,网络优化,乌什网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
null不是=null;
在oracle中=null一直都是返回false的。
另外最好加上exception判断:
IF
:new.s_ID
IS
NULL
THEN
BEGIN
SELECT
c_id
into
:new.s_ID
from
classs
where
c_sid=:NEW.s_cid;
EXCEPTION
WHEN
no_data_found
THEN
SELECT
INTO
:new.s_ID
FROM
dual;
--或者其他操作
END;
END
IF;
当在classs表中没有找到对应的记录时不至于出错,看你要怎么设计咯。
使用oracle进行批量update更新数据的时候,可以在更新前进行判断,根据条件进行批量更新
update tables_name t
set t.value1 = case
when t.value1 = '33020' then
'330200'
when t.value1 = '33021' then
'330210'
when t.value1 = '33022' then
'330221'
end
where t.value1 in ('33020', '33021', '33022');
有几种不同的思路/技巧来处理:
1、类过程型:根据3类订单,逐一处理
1.1、先“调换类”
1.2、再“退货类”
sql略
1.3、最后“销售类”
sql略
2、对“类型”进行加权计算,放大差异,进行数字化统计
-CASE ItemType WHEN '旧品回收' THEN 10000 WHEN '新品退货' THEN 10 ELSE 0 END
这样可以对“子表”进行快速分组统计,
然后据此更新“主表”的“订单类型”字段。
oracle的if语句采用decode函数。
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;
LOOP
BEGIN
FETCH id_cursor
INTO v1, v2, v3, v4;--把游标里的四个值分别赋值到四个变量中
EXIT WHEN id_cursor%NOTFOUND;
IF v1 = 'xxx'--比如想判断游标中第一个变量的值,就这样if一下
THEN
xxx
ELSE
xxx
IF v2 = 'xxx'--判断第二个也一样
THEN
xxx
ELSE
xxx
END IF;
EXCEPTION
xxx
END;
END LOOP;
CLOSE id_cursor;
记得自己声明变量和游标名字……
不知道你是问这个不