oracle的if語句采用decode函數(shù)。
創(chuàng)新互聯(lián)是一家以網(wǎng)絡(luò)技術(shù)公司,為中小企業(yè)提供網(wǎng)站維護、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)站備案、服務(wù)器租用、空間域名、軟件開發(fā)、小程序定制開發(fā)等企業(yè)互聯(lián)網(wǎng)相關(guān)業(yè)務(wù),是一家有著豐富的互聯(lián)網(wǎng)運營推廣經(jīng)驗的科技公司,有著多年的網(wǎng)站建站經(jīng)驗,致力于幫助中小企業(yè)在互聯(lián)網(wǎng)讓打出自已的品牌和口碑,讓企業(yè)在互聯(lián)網(wǎng)上打開一個面向全國乃至全球的業(yè)務(wù)窗口:建站電話聯(lián)系:18980820575
DECODE(value,if1,then1,if2,then2,if3,then3,...,else)
表示如果value 等于if1時,DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個if值,則返回else。
Oracle數(shù)據(jù)庫是對標(biāo)準(zhǔn)sql語言的過程化擴展,因此產(chǎn)生了pl/sql語言。其中的if語句大量使用使得程序模塊化的功能方便實用。現(xiàn)在要討論的是if語句的基本使用方法。
連接數(shù)據(jù)庫
請輸入用戶名: ?scott/123456
設(shè)置環(huán)境變量
SQL set serveroutput on
定義兩個字符串變量,然后賦值,接著使用if……then語句比較兩個字符串變量的長度,并輸出比較結(jié)果。
declare
a varchar(10);
b varchar(10);
begin
a:='beijing';
b:='guangdong';
if length(a)length(b)
then dbms_output.put_line('ab');
end if;
end;
過if……then……else語句實現(xiàn)只有年齡大于等于56歲,才可以申請退休,否則程序會提示不可以申請退休。
declare
a number(10);
begin
a:=x;
if a=56
then dbms_output.put_line('可以申請退休');
else dbms_output.put_line('不可以申請退休');
end if;
end;
制定一個月份數(shù)值,然后使用if……then……elsif語句判斷它所屬的季節(jié),并輸出季節(jié)信息。
declare
mon number(10);
begin
mon:=x;
if mon=3 or mon=4 or mon=5
then dbms_output.put_line('春節(jié)');
elsif mon=6 or mon=7 or mon=8 then dbms_output.put_line('夏季');
elsif mon=9 or mon=10 or mon=11 then dbms_output.put_line('秋季');
elsif mon=12 or mon=1 or mon=2 then dbms_output.put_line('冬季');
end if;
end;
制定一個季度數(shù)值,然后使用case語句判斷它所包含的月份信息并輸出。
declare
ss number(10);
begin
ss:=x;
case
when ss=1 then dbms_output.put_line('包含月份3,4,5');
when ss=2 then dbms_output.put_line('包含月份6,7,8');
when ss=3 then dbms_output.put_line('包含月份9,10,11');
when ss=4 then dbms_output.put_line('包含月份12,1,2');
end case;
end;
你的意思應(yīng)該是case when吧。
比如:
case when yw60 then '不及格'
when yw=60 and yw70 then '及格'
when yw =70 and yw80 then '一般' when yw =80 and yw90 then '良好' when yw =90 then '優(yōu)秀'
首先要確保這里的 空值 是 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及之后)
如果是'',可以參照上面處理
如果是其它情況的話,可能還要轉(zhuǎn)換判斷一下!
以上僅參考!