av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Oracle數(shù)據(jù)庫(kù)的decode、sign、trunc函數(shù)使用詳解

Oracle數(shù)據(jù)庫(kù)的函數(shù)有很多,本文我們主要介紹一下decodesigntrunc函數(shù)的使用,接下來(lái)就讓我們一起來(lái)了解一下這部分內(nèi)容。

創(chuàng)新互聯(lián)建站是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:響應(yīng)式網(wǎng)站、品牌網(wǎng)站制作、成都全網(wǎng)營(yíng)銷(xiāo)。我們專(zhuān)注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

一、decode

在Oracle/PLSQL中, decode 具有和 IF-THEN-ELSE 一樣的功能。

decode 函數(shù)語(yǔ)法如下:

decode( expression , search , result [, search , result]... [, default] );

expression 要比較的表達(dá)式。

search 要與expression 比較的字段。.

result 如果expression 與search 一樣的話,返回該結(jié)果。.

default 此參數(shù)可選,如果沒(méi)有與expression 匹配上的search,就返回此結(jié)果,如果此參數(shù)沒(méi)有設(shè)置,當(dāng)沒(méi)有與expression匹配上的search時(shí),返回null。

search 和 result可成對(duì)出現(xiàn)多次,代表各種要匹配的情況。

應(yīng)用于Oracle 9i, Oracle 10g, Oracle 11g。

例如:

 
 
 
  1. You could use the decode function in an SQL statement as follows:  
  2.  
  3. select supplier_name,decode(supplier_id,1000,'IBM',10001,'Microsoft','1002','Hewlett Packard','Gateway') result from suppliers; 

上面的sql語(yǔ)句相當(dāng)于下面的IF-THEN-ELSE :

 
 
 
  1. IF supplier_id = 10000 THEN  
  2.  
  3. result := 'IBM';  
  4.  
  5. ELSIF supplier_id = 10001 THEN  
  6.  
  7. result := 'Microsoft';  
  8.  
  9. ELSIF supplier_id = 10002 THEN  
  10.  
  11. result := 'Hewlett Packard';  
  12.  
  13. ELSE  
  14.  
  15. result := 'Gateway';  
  16.  
  17. END IF; 

decode 函數(shù)會(huì)挨個(gè)匹配supplier_id 的值.

常見(jiàn)問(wèn)題:

問(wèn)題1: 現(xiàn)在一個(gè)閱讀者想問(wèn),怎么使用decode函數(shù)來(lái)比較兩個(gè)日期呢?(例如:date1 和 date2), 如果date1 > date2, decode 函數(shù)返回date2. 否則decode函數(shù)返回 date1.

回答: 要實(shí)現(xiàn)上述要求,可使用decode函數(shù)如下:

decode((date1 - date2) - abs(date1 - date2), 0, date2, date1)

如果date1大于date2,下面表達(dá)是會(huì)等于0:

(date1 - date2) - abs(date1 - date2)

幫助性提示:可用decode函數(shù)綁定SIGN 函數(shù),像下面這樣:

上面比較日期的語(yǔ)句可修改如下:

DECODE(SIGN(date1-date2), 1, date2, date1)

SIGN/DECODE 聯(lián)合對(duì)于有關(guān)銷(xiāo)售紅利等數(shù)字方面的比較是非常有用的。

DECODE(SIGN(actual-target), -1, 'NO Bonus for you', 0,'Just made it', 1, 'Congrats, you are a winner')。

問(wèn)題2:我想知道是否可以用decode函數(shù)來(lái)確定數(shù)字范圍,例如 1-10 = 'category 1', 11-20 = 'category 2', 比一個(gè)一個(gè)比較應(yīng)該會(huì)好一點(diǎn)吧。

回答:不幸的告訴你,不可以用decode函數(shù)來(lái)確定數(shù)字的范圍. 可是你可以試著創(chuàng)建一個(gè)表達(dá)式,這個(gè)表達(dá)式可以得一個(gè)數(shù)字指定的范圍,下一個(gè)數(shù)字對(duì)應(yīng)下一個(gè)指定的范圍, 以此類(lèi)推。

例如:

select supplier_id,decode(trunc((supplier_id-1)/10),0,'category 1',1,'category 2',2,'category 3','unknown') result from suppliers;

這個(gè)例子基于這個(gè)公式:trunc ((supplier_id - 1) / 10

如果supplier_id在1和10之間,表達(dá)式計(jì)算值=0.

如果supplier_id在11和20之間,表達(dá)式計(jì)算值=1.

二、sign

在Oracle/PLSQL中, sign 函數(shù)返回一個(gè)數(shù)字的正負(fù)標(biāo)志.

語(yǔ)法如下:sign( number )

number 要測(cè)試標(biāo)志的數(shù)字.

If number < 0, then sign returns -1.

If number = 0, then sign returns 0.

If number > 0, then sign returns 1.

應(yīng)用于:Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g。

例如:

 
 
 
  1. sign(-23) would return -1 sign(0.001) would return -1 sign(0) would return 0 sign(0.001)   
  2.  
  3. would return 1 sign(23) would return 1 sig(23.601)  
  4.  
  5. would return 1 

三、trunc(number)

在Oracle/PLSQL中, trunc function returns a number truncated to a certain number of decimal places.

trunc function 語(yǔ)法如下:

trunc( number, [ decimal_places ] )

number 要截取的數(shù)字。

decimal_places 要保留的小數(shù)位. 這個(gè)參數(shù)必須是個(gè)整數(shù). 如果此參數(shù)缺省,默認(rèn)保留0位小數(shù)

應(yīng)用于:Oracle 8i, Oracle 9i, Oracle 10g, Oracle 11g

例如For example:

trunc(125.815) would return 125 trunc(125.815, 0) would return 125 trunc(125.815, 1) would return 125.8 trunc(125.815, 2) would return 125.81 trunc(125.81, 3) would return 125.81 trunc(-125.815, 2) would return -125.81 trunc(125.815, -1) would return 120 trunc(125.815, -2) would return 100 trunc(125.81, -3) would return 0

如果decimal_places 大于number 本身的小數(shù)位數(shù),返回原數(shù)字不會(huì)加0。

如:trunc(125.81,3) would return 125.81;

如果decimal_places 為負(fù)數(shù),那么將指定的位數(shù)

如果supplier_id在21和30之間,表達(dá)式計(jì)算值=3.

關(guān)于Oracle數(shù)據(jù)庫(kù)的decode、sign、trunc函數(shù)的使用就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. 關(guān)于Oracle數(shù)據(jù)庫(kù)閃回個(gè)性的詳細(xì)介紹
  2. Oracle數(shù)據(jù)庫(kù)對(duì)DDL語(yǔ)句和DML語(yǔ)句的事務(wù)管理
  3. Oracle數(shù)據(jù)庫(kù)啟動(dòng)參數(shù)文件及相關(guān)SQL語(yǔ)句簡(jiǎn)介
  4. Oracle數(shù)據(jù)庫(kù)的幾種文件及表空間數(shù)據(jù)塊的知識(shí)簡(jiǎn)介
  5. Oracle數(shù)據(jù)庫(kù)查詢登錄用戶名所屬表空間及其使用情況

本文標(biāo)題:Oracle數(shù)據(jù)庫(kù)的decode、sign、trunc函數(shù)使用詳解
地址分享:http://uogjgqi.cn/article/cocjsdc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流