您好,登錄后才能下訂單哦!
decode類似于if - then - else
語法:decode(values,if1,then1,if2,then2,...else)
values
代表某個表的任何類型的任意列
或者一個通過計算所得的任何結(jié)果
,當(dāng)每個value
值被測試,如果value
的值為if1
,decode函數(shù)的結(jié)果為then1
,如果都不符合,那么就返回else
。
這里的if
、then
及else
都可以是函數(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
創(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
免責(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)容。