溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

oracle 菜鳥學(xué)習(xí)之 decode中if-then-else邏輯

發(fā)布時間:2020-06-09 11:10:01 來源:網(wǎng)絡(luò) 閱讀:1519 作者:運(yùn)維少年 欄目:關(guān)系型數(shù)據(jù)庫

oracle 菜鳥學(xué)習(xí)之 decode中if-then-else邏輯

decode類似于if - then - else

語法:
decode(values,if1,then1,if2,then2,...else)

values 代表某個表的任何類型的任意列或者一個通過計算所得的任何結(jié)果,當(dāng)每個value值被測試,如果value的值為if1,decode函數(shù)的結(jié)果為then1,如果都不符合,那么就返回else。
這里的ifthenelse都可以是函數(shù)或計算表達(dá)式。

例子

create table student(id number,name varchar2(4),sex number);
insert into student values(1,'A',1);
insert into student values(2,'B',2);
insert into student values(3,'C',1);

SQL> select * from student;

    ID NAME            SEX
---------- ------------ ----------
     1 A             1
     2 B             2
     3 C             1

SQL> 

問題:sex列,1顯示為nan,2顯示為nv

SQL> select id,name,decode(sex,1,'nan','nv') from student;

    ID NAME     DECODE(SE
---------- ------------ ---------
     1 A        nan
     2 B        nv
     3 C        nan

SQL> 
sex -- values
1 -- if1
nan -- then1
nv -- else

實(shí)驗(yàn)

創(chuàng)建表:

create table sales(month number(3),sales_tv number(4),sales_computer number(4));
insert into sales values(01,10,18);
insert into sales values(02,28,20);
insert into sales values(03,36,33);

month:月份 sales_tv:電視機(jī)的銷售量 sales_computer:計算機(jī)的銷售量

問題:
選出每個月月份最多銷售量,使用函數(shù)sign.
sign函數(shù)可以判斷參數(shù)是正或負(fù),正返回1,負(fù)返回-1,0返回0

SQL> select month,decode(sign(SALES_TV - SALES_COMPUTER),1,SALES_TV,0,SALES_TV,-1,SALES_COMPUTER) as max from sales;

     MONTH    MAX
---------- ----------
     1     18
     2     28
     3     36

SQL> 

原創(chuàng):www.arppinging.com

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI