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語句
如果是 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 sql語言中如何寫if的判斷,并循環
咦,剛有回答你一個問題。你這個是只判斷*>*情況下才update。其他情況不考慮。
update table1 t3
set * =
(select number
from (select *, * - * number
from table1 t1, table2 t2
where * = *) t4
where * = *
and * > 0)
where * in (select *
from (select * - * number
from table1 t1, table2 t2
where * = *) t4
where * > 0);
commit;
Oracle if 語句問題
oracle跟sqlserver不同
if 后 then就可以
而sqlserver中
if 后不跟then ,而是跟begin 。.end;
所以你第一個是對的,第二個應該會報錯的
同時update后需要commit;這個lz需要注意一下,否則只在當前會話中update生效,重新再開一個會話還會發現數據沒寫進去
還有,你select 。into那句,xx必須只能是一個值,不能是一列里N多條記錄,否則一個變量不能存放N條數據,如果這種情況得需要用游標來處理
Oracle連接查詢和sql語句中的條件判斷有哪些
SELECT 1 UPLOAD, 0 SHENGJI, *_ID, *_ID, *_ID, *_NUM, *, *, *_OUT_REGION, *_OPERA_TIME, *_OPERA_ID, *_OPERA_TIME, *E_STATE, *_IN_REGION, case when *_IN_REGION is null then '未選擇' else *_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR left join ADPM_REGION_CODE ARC on *_IN_REGION = *_CODE WHERE *_ID = *_ID AND (*E_STATE = '10' OR *E_STATE = '20' OR *E_STATE = '60'); SELECT 1 UPLOAD, 0 SHENGJI, *_ID, *_ID, *_ID, *_NUM, *, *, *_OUT_REGION, *_OPERA_TIME, *_OPERA_ID, *_OPERA_TIME, *E_STATE, *_IN_REGION, case when *_IN_REGION is null then '未選擇' else *_NAME end AS MIGRT_IN_REGION_NAME FROM ADPM_MIGRATE_CPA MASTER, ADPM_MIGRATE_INFO MR, ADPM_REGION_CODE ARC WHERE *_ID = *_ID AND (*E_STATE = '10' OR *E_STATE = '20' OR *E_STATE = '60') AND *_IN_REGION = *_CODE(+);。
轉載請注明出處華閱文章網 » oraclesqlif語句