
2023年3月27日發(fā)(作者:1999年春節(jié)聯(lián)歡晚會(huì))decode()函數(shù)是ORACLE PL/SQL是功能強(qiáng)大的函數(shù)之一,目前還只有ORACLE公司的SQL提供了此函數(shù),其他數(shù)據(jù)庫(kù)廠商的SQL實(shí)現(xiàn)還沒(méi)有此功能。
DECODE函數(shù)是ORACLE PL/SQL是功能強(qiáng)大的函數(shù)之一,目前還只有ORACLE公司的SQL提供了此函數(shù),其他數(shù)據(jù)庫(kù)廠商的SQL實(shí)現(xiàn)還沒(méi)有此功能。DECODE有什么用途 呢? 先構(gòu)造一個(gè)例子,假設(shè)我們想給智星職員加工資,其標(biāo)準(zhǔn)是:工資在8000元以下的將加20%;工資在8000元以上的加15%,通常的做法是,先選出記錄 中的工資字段值? lect salary into var-salary from employee,然后對(duì)變量var-salary用if-then-el或choo ca之類的流控制語(yǔ)句進(jìn)行判斷。 如果用DECODE暗香疏影
函數(shù),那么我們就可以把這些流控制語(yǔ)句省略,通過(guò)SQL語(yǔ)句就可以直接完成。如下:lect decode(sign(salary - 8000),1,salary*1.15,-素食
1,salary*1.2,salary from employee 是不是很簡(jiǎn)潔? DECODE的語(yǔ)法:DECODE(value,if1,then1,if2,then2,if3,then3,...,el),表示如齊國(guó)
果value 等于if1時(shí),DECODE函數(shù)的結(jié)果返回then1,...,如果不等于任何一個(gè)if值,則返回el。初看一下,DECODE 只能做等于測(cè)試,但剛才也看到了,我們通過(guò)一些函數(shù)或計(jì)算替代value,是可以使DECODE函數(shù)具備大于、小于或等于功能。
DECODE(條件,值1,翻譯值1,值2,翻憲法知識(shí)手抄報(bào)
譯值2,...值n,翻譯值n,缺省值)
DECODE(字段,比較1,值1,比較2,值2,.....,比較n,值n缺省值)
該函數(shù)的含義如下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
《童年》讀書(shū)筆記
......
ELSIF 條件=值n THEN
RETURN(翻譯值n)
ELS夢(mèng)見(jiàn)螞蟥
E
RETURN(缺省值)
END IF
decode()函數(shù)使用技巧
軟件環(huán)境:
1、Windows NT4.0+ORACLE 8.0.4
2、ORACLE安裝路徑為:C:/ORANT
工會(huì)基礎(chǔ)知識(shí)
使用方法:
1、比較大小
lect decode(sign(變量1-變量2),-1,變量1,變量2) from dual; --取較小值
sign()函數(shù)根據(jù)某個(gè)值發(fā)燒可以吃羊肉嗎
是0、正數(shù)還是負(fù)數(shù),分別返回0、1、-1
例如:
變量1=10,變量2=20
則sign(變量1-變量2)返回-1,decode解碼結(jié)果為“變量1”,達(dá)到了取較小值的目的。
2、表、視圖結(jié)構(gòu)轉(zhuǎn)化
抽獎(jiǎng)活動(dòng)方案策劃
現(xiàn)有一個(gè)商品銷(xiāo)售表sale,表結(jié)構(gòu)為:
month char(6) --月份
ll number(10,2) --月銷(xiāo)售金額
現(xiàn)有數(shù)據(jù)為:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
想要轉(zhuǎn)化為以下結(jié)構(gòu)的數(shù)據(jù):
year char(4) --年份
month1 number(10,2) --1