oracle怎么写IF语句
如果是 SQL 语句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, 'A', 'B')
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN 'A' ELSE 'B' END
如果是在存储过程里面的话,就是简单的 IF/ELSE 了
SQL 语句的话,就是
SELECT
abc, DECODE(abc, 50, 'A', 'B')
FROM
表
Oracle if 语句问题
oracle跟sqlserver不同
if 后 then就可以
而sqlserver中
if 后不跟then ,而是跟begin 。.end;
所以你第一个是对的,第二个应该会报错的
同时update后需要commit;这个lz需要注意一下,否则只在当前会话中update生效,重新再开一个会话还会发现数据没写进去
还有,你select 。into那句,xx必须只能是一个值,不能是一列里N多条记录,否则一个变量不能存放N条数据,如果这种情况得需要用游标来处理
oracle 视图 if 语句的使用
Create Or Replace View mark_vAsSelect Id,Case score When '优' Then '90' When '中' Then '75' When '差' Then '30' Else score End As scoreFrom mark或者还有个简单的写法:Create Or Replace View mark_vAsSelect Id,decode(score,'优','90','中','75','差','30',score) As scoreFrom mark以上希望对你有所帮助。
ORACLE sql 里面可以用if 语句吗
insert 语句中值的顺序如果和表结构一致可以省略列名列表。
这个SQL的意思没看懂,我给分析一下看对不对,
你是不是想表达这个意思:
如果在yangao这个表中存在age3=4的数据,那么,就向yangao中插入一行数据,行数据的内容是(4,NULL,1).
如果是这样的话,那么IF用的是不对的。
在SQL里面条件的关键字是WHERE。
insert into yangao values(4,NULL,1)
where exists (select * from yangao where(AGE3=4));
commit;
但如果你想表达的是:
在yangao表中插入一条数据,如果存在(select * from yangao where(AGE3=4)) 这样的数据就提交的话,那么应该这么写:
insert into yangao values (4, NULL, 1);
select count(*) into n_count from yangao where (AGE3 = 4);
if n_count > 0 then
commit;
end if;
ORACLE中触发器的判断IF语句
加一行 NULL 即可例如:SQL> DECLARE 2 testvalue INT; 3 BEGIN 4 testvalue := 200; 5 6 IF testvalue > 100 THEN 7 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 / ELSIF testvalue = 100 THEN *ERROR 位于第 8 行:ORA-06550: 第 8 行, 第 9 列:PLS-00103: 出现符号 "TESTVALUE"在需要下列之一时::= . ( @% ;ORA-06550: 第 14 行, 第 4 列:PLS-00103: 出现符号 ";"在需要下列之一时:if上面的例子, 可以看出,如果 IF ELSE 里面, 没有内容, 那么编译不通过。
下面是 加一行 NULL 通过的例子:SQL> DECLARE 2 testvalue INT; 3 BEGIN 4 testvalue := 200; 5 6 IF testvalue > 100 THEN 7 NULL; 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 /PL/SQL 过程已成功完成。