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语句啊
首先要确保这里的 空值 是 NULL,还是0,或是''。
如果是NULL,则:
select NVL(mlr,yqlr) as result from table_name
select NVL2(mlr,mlr,yqlr) as result from table_name (9i及之后)
如果是0:
select NVL(NULLIF(mlr,0),yqlr) as result from table_name (9i及之后)
如果是'',可以参照上面处理
如果是其它情况的话,可能还要转换判断一下!
以上仅参考!
Oracle循环语句的写法有哪些呢
如果您对Oracle循环语句方面感兴趣的话,不妨一看。
loop循环: 1。 create or replace procedure pro_test_loop is 2。
i number; 3。 begin 4。
i:=0; 5。 loop 6。
ii:=i+1; 7。 dbms_output。
put_line(i); 8。 if i》5 then 9。
exit; 10。 end if; 11。
end loop; 12。 end pro_test_loop; while循环: 1。
create or replace procedure pro_test_while is 2。 i number; 3。
begin 4。 i:=0; 5。
while i《5 loop 6。 ii:=i+1; 7。
dbms_output。 put_line(i); 8。
end loop; 9。 end pro_test_while; for循环1: 1。
create or replace procedure pro_test_for is 2。 i number; 3。
begin 4。 i:=0; 5。
for i in 1。
5 loop 6。 dbms_output。
put_line(i); 7。 end loop; 8。
end pro_test_for; for循环2: 1。 create or replace procedure pro_test_cursor is 2。
userRow t_user%rowtype; 3。 cursor userRows is 4。
select * from t_user; 5。 begin 6。
for userRow in userRows loop 7。 dbms_output。
put_line(userRow。Id||','||userRow。
Name||','||userRows%rowcount); 8。 end loop; 9。
end pro_test_cursor;。
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以上希望对你有所帮助。