文章詳情頁
Oracle 中DECODE 函數(shù)的使用簡介
瀏覽:9日期:2023-11-19 15:57:14
DECODE(base_eXPr,compare1,value1,compare2,value2,….default) 此函數(shù)用在SQL語句中,功能介紹如下: DECODE函數(shù)與一系列嵌套的 IF-THEN-ELSE語句相似。base_exp與compare1,compare2等等依次進行比較。假如base_exp和 第i 個compare項匹配,就返回第i 個對應的value 。假如base_exp與任何的compare值都不匹配,則返回default。每個compare值順次求值,假如發(fā)現(xiàn)一個匹配,則剩下的compare值(假如還有的話)就都不再求值。一個為NULL的base_exp被認為和NULL compare值等價。假如需要的話,每一個compare值都被轉(zhuǎn)換成和第一個compare 值相同的數(shù)據(jù)類型,這個數(shù)據(jù)類型也是返回值的類型。 DECODE函數(shù)在實際開發(fā)中非常的有用。比如在WEB開發(fā)中,一個構造查詢條件的頁面上,給出了幾個查詢條件讓用戶填寫, 假如用戶沒有填寫某個查詢條件,就默認在后臺賦一個值。假如填了的話,查詢條件就是用戶填寫的那個。 例如:前臺需要用戶輸入某個編號以及其他信息來查詢產(chǎn)品信息,在where條件中有這么一句:(其中“:單件虛擬編號”是參數(shù)行,從前臺獲得。) …AND DECODE(:單件虛擬編號,NULLl,A.單件虛擬編號,:單件虛擬編號)=A.單件虛擬編號… 這就是說,假如用戶在頁面沒填寫“單件虛擬編號”字段,那么后臺接收到的就是 NULL。在DECODE函數(shù)中,就返回A表的單件虛擬編號值(默認值),假如用戶填寫了該字段,DECODE函數(shù)返回的就是用戶填寫的值。 結合LPAD函數(shù),如何使主鍵的值自動加1并在前面補0 select LPAD(decode(count(記錄編號),0,1,max(to_number(記錄編號)+1)),14,'0') 記錄編號from tetdmis.zf_鉆井日報表
標簽:
Oracle
數(shù)據(jù)庫
排行榜
