學習《PLSQL開發指南》筆記——條件和序列控制
一、三種條件語句
1、if-then-end if
2、if-then-else-end if
2、if-then-elsif-then-else-end if
注意:1、條件是boolean型,null和任何型別的運算都是false;
2、來自資料庫的值,要關注null問題:is null,nvl;
3、多條件,也需要排除null值,and或者or,只需要其中一個條件true或者false,就可以判斷結果。
begin
if null or null
then
dbms_output.put_line('null值的運算結果是true!');
else
dbms_output.put_line('null值得運算結果是false!');
end if;
end;
二、case 語句和case表示式
1、case語句
declare
v_case varchar2(10) := 'ding';
begin
case v_case
when 'd' then
dbms_output.put_line('選中的字母是:' || v_case);
when 'ding' then
dbms_output.put_line('選中的字母是:' || v_case);
else
dbms_output.put_line('沒有選中字母');
end case;
end;
2、case 語句
declare
v_case varchar2(10) := 'd';
begin
case
when v_case = 'd' then
dbms_output.put_line('選中的字母是:' || v_case);
when v_case = 'ding' then
dbms_output.put_line('選中的字母是:' || v_case);
else
dbms_output.put_line('沒有選中字母');
end case;
end;
3、case 語句
declare
v_num int := 1500;
begin
case
when v_num >= 1000 then
case
when v_num >= 1200 then
dbms_output.put_line('傳入的資料大於1200!');
when v_num >= 1500 then
dbms_output.put_line('傳入的資料大於1500!');
when v_num >= 4000 then
dbms_output.put_line('傳入的資料大於4000!');
end case;
when v_num < 1000 then dbms_output.put_line('傳入的值小於1000!');
end case;
end;
4、case 表示式:轉換結果,可以給函式傳引數:case when then else end;
declare
t_bl boolean := true;
f_bl boolean := false;
n_bl boolean;
function v_func(v_flag in boolean) return varchar2 is
begin
return case v_flag when true then 'True' when false then 'Else' else 'null' end;
end;
begin
dbms_output.put_line(v_func(t_bl));
dbms_output.put_line(v_func(f_bl));
dbms_output.put_line(v_func(n_bl));
end;
case 表示式和case語句的區別
1、case 語句以end case 結尾;case 表示式以end結尾;
2、case 語句then 以後有分號;case 表示式沒有;
3、case 語句中沒有else 會報錯誤;case表示式沒有else則返回null;
4、case 表示式以end結尾可以參與到運算中;
最後的例子:
declare
dump_mesg varchar2(20);
begin
select case
when dummy = 'X' then
'dual is OK!'
else
'dual is messed up!'
end
into dump_mesg
from dual;
dbms_output.put_line(dump_mesg);
end;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22275400/viewspace-1317918/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習《PLSQL開發指南》筆記——PLSQL的基本原理SQL筆記
- 學習《PLSQL開發指南》筆記—— SQLPLUS建立過程前的學習SQL筆記
- React學習筆記-條件渲染React筆記
- Vue學習筆記(三)條件渲染和迴圈渲染Vue筆記
- MySQL學習筆記之約束條件MySql筆記
- mysql,where條件查詢等學習筆記MySql筆記
- 【學習筆記】Prufer 序列筆記
- MYSQL學習筆記6: DQL條件查詢(where)MySql筆記
- RxJava 學習筆記 -- 條件操作符和布林操作符RxJava筆記
- muduo網路庫學習筆記(4):互斥量和條件變數筆記變數
- 《JAVA學習指南》學習筆記Java筆記
- Mybatis學習筆記 3:Mybatis 多種條件查詢MyBatis筆記
- 【C#學習筆記】smtp發郵件C#筆記
- PLSQL學習——控制語句SQL
- SpringBoot學習筆記13——MybatisPlus條件查詢Spring Boot筆記MyBatis
- Swift學習筆記(二十七)——條件語句和Switch-case語句Swift筆記
- Pandas學習筆記1(序列部分)筆記
- Python學習筆記之序列Python筆記
- 控制元件開發學習筆記(一)——ToolboxData含義控制元件筆記
- 《Shell指令碼學習指南》學習筆記指令碼筆記
- Python學習筆記3(條件語句+迴圈語句)Python筆記
- Python學習筆記(三)——條件語句、迴圈語句Python筆記
- Rest API 開發 學習筆記RESTAPI筆記
- Android 開發學習筆記Android筆記
- scala學習筆記:控制抽象筆記抽象
- TCP/IP學習筆記之協議和郵件TCP筆記協議
- Go 條件語句 - Go 學習記錄Go
- Go 入門指南學習筆記Go筆記
- React入門指南(學習筆記)React筆記
- NDK學習筆記-NDK開發流程筆記
- JS開發步驟學習筆記JS筆記
- Web開發學習筆記——HTTP 概述Web筆記HTTP
- U-boot開發學習筆記boot筆記
- 學習筆記 過程、同義詞、序列筆記
- Kinect開發學習筆記之(二)Kinect開發學習資源整理筆記
- 強化學習-學習筆記15 | 連續控制強化學習筆記
- 《HTTPS權威指南》- SSL、TLS和密碼學學習筆記HTTPTLS密碼學筆記
- 【學習】= 概念 + 關係 + 關係發生的過程和條件