含**釋:
decode(條件,值1,翻譯值1,值2,翻譯值2,…值n,翻譯值n,預設值)
該函式的含義如下:
if 條件=值1 then
return(翻譯值1)
elsif 條件=值2 then
return(翻譯值2)
……elsif 條件=值n then
return(翻譯值n)
else
return(預設值)
end if
使用方法:
1、比較大小
select decode(sign(變數1-變數2),-1,變數1,變數2) from dual; –取較小值
sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1
例如:變數1=10,變數2=20
則sign(變數1-變數2)返回-1,decode解碼結果為「變數1」,達到了取較小值的目的。
2、表、檢視結構轉化
現有乙個商品銷售表sale,表結構為:
month char(6) –月份
sell number(10,2) –月銷售金額
現有資料為:
200001 1000
200002 1100
200003 1200
200004 1300
200005 1400
200006 1500
200007 1600
200101 1100
200202 1200
200301 1300
想要轉化為以下結構的資料:
year char(4) –年份
month1 number(10,2) –1月銷售金額
month2 number(10,2) –2月銷售金額
month3 number(10,2) –3月銷售金額
month4 number(10,2) –4月銷售金額
month5 number(10,2) –5月銷售金額
month6 number(10,2) –6月銷售金額
month7 number(10,2) –7月銷售金額
month8 number(10,2) –8月銷售金額
month9 number(10,2) –9月銷售金額
month10 number(10,2) –10月銷售金額
month11 number(10,2) –11月銷售金額
month12 number(10,2) –12月銷售金額
結構轉化的sql語句為:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12)
asselect
substrb(month,1,4),
sum(decode(substrb(month,5,2),』01′,sell,0)),
sum(decode(substrb(month,5,2),』02′,sell,0)),
sum(decode(substrb(month,5,2),』03′,sell,0)),
sum(decode(substrb(month,5,2),』04′,sell,0)),
sum(decode(substrb(month,5,2),』05′,sell,0)),
sum(decode(substrb(month,5,2),』06′,sell,0)),
sum(decode(substrb(month,5,2),』07′,sell,0)),
sum(decode(substrb(month,5,2),』08′,sell,0)),
sum(decode(substrb(month,5,2),』09′,sell,0)),
sum(decode(substrb(month,5,2),』10′,sell,0)),
sum(decode(substrb(month,5,2),』11′,sell,0)),
sum(decode(substrb(month,5,2),』12′,sell,0))
from sale
group by substrb(month,1,4);
Oracle Decode函式詳解
函式介紹 decode函式是oracle pl sql的功能強大的函式之一,目前還只有oracle公司的sql提供了此函式,其它資料庫廠商的sql實現還沒有此功能。decode有什麼用途呢?先構造乙個例子,假設我們想給智星職員加工資,其標準是 工資在8000元以下的加20 工資在8000元或以上的加...
oracle decode函式的用法
該函式可以接受可變的引數,具體引數情況如下 decode 條件,值1,翻譯值1,值2,翻譯值2,值n,翻譯值n,預設值 該函式的含義如下 if 條件 值1 return 翻譯值1 else if 條件 值2 return 翻譯值2 else if 條件 值n return 翻譯值n else ret...
oracle decode函式的使用
由於近期的一點點工作,學習了一點點oracle的東西,僅記錄一點 decode函式和sign函式配合在sql語句中做判斷。decode 語法 decode expression,compare1,value1,compare2,value2,defaultvalue 意思很簡單,如果expressi...