一、oracle中如果查詢結(jié)果為空則執(zhí)行另外一條查詢,或者換一個(gè)查詢條件語(yǔ)句怎么寫(xiě)
增加個(gè)判斷,判斷是否有數(shù)據(jù) 或者通過(guò)游標(biāo)來(lái)判斷數(shù)據(jù)是否存在如果沒(méi)有數(shù)據(jù)。再執(zhí)行查詢下一個(gè)表。也可以嘗試下面的方式。
select a
into i_a
from stu1
where id = 1;
exception
when others then
begin
select b
into i_a
from stu2
where id =2
;
exception when others then
i_a := null;
end;
end ;
類(lèi)似于這樣,但是得結(jié)合業(yè)務(wù)需求來(lái),但很明顯就是所有結(jié)果全查了,說(shuō)不上好不好主要還是看數(shù)據(jù)主要落在哪個(gè)分布上,針對(duì)性去調(diào)整來(lái)優(yōu)化性能。
否則的話,這種加判斷邏輯的,要么通過(guò)代碼實(shí)現(xiàn)(比較想當(dāng)然的也是比較合適做的),要么通過(guò)數(shù)據(jù)庫(kù)函數(shù)實(shí)現(xiàn)(這種不是很合適,明顯不是通用的函數(shù)。
延伸閱讀:
二、SQL是什么
Structured Query Language
‘SQL’是結(jié)構(gòu)化查詢語(yǔ)言,是一種用來(lái)操作?RDBMS?的數(shù)據(jù)庫(kù)語(yǔ)言,當(dāng)前關(guān)系型數(shù)據(jù)庫(kù)都支持使用SQL語(yǔ)言進(jìn)行操作,也就是說(shuō)可以通過(guò)?SQL?操作 oracle,sql server,mysql,sqlite 等等所有的關(guān)系型的數(shù)據(jù)庫(kù)
SQL語(yǔ)句主要分為:DQL:數(shù)據(jù)查詢語(yǔ)言,用于對(duì)數(shù)據(jù)進(jìn)行查詢,如select**
DML:數(shù)據(jù)操作語(yǔ)言,對(duì)數(shù)據(jù)進(jìn)行增加、修改、刪除,如insert、udpate、delete**
TPL:事務(wù)處理語(yǔ)言,對(duì)事務(wù)進(jìn)行處理,包括begin transaction、commit、rollback
DCL:數(shù)據(jù)控制語(yǔ)言,進(jìn)行授權(quán)與權(quán)限回收,如grant、revoke
DDL:數(shù)據(jù)定義語(yǔ)言,進(jìn)行數(shù)據(jù)庫(kù)、表的管理等,如create、drop
CCL:指針控制語(yǔ)言,通過(guò)控制指針完成表的操作,如declare cursor對(duì)于web程序員來(lái)講,重點(diǎn)是數(shù)據(jù)的crud(增刪改查),必須熟練編寫(xiě)DQL、DML,能夠編寫(xiě)DDL完成數(shù)據(jù)庫(kù)、表的操作,其它語(yǔ)言如TPL、DCL、CCL了解即可SQL 是一門(mén)特殊的語(yǔ)言,專門(mén)用來(lái)操作關(guān)系數(shù)據(jù)庫(kù)不區(qū)分大小寫(xiě)