decode的幾種用法
1:使用decode判斷字串是否一樣
decode(value,if1,then1,if2,then2,if3,then3,...,else)
含義為if 條件=值1 then
return(value 1)
elsif 條件=值2 then
return(value 2)
......
elsif 條件=值n then
return(value 3)
else
return(default)
end if
2:使用decode比較大小
select decode(sign(var1-var2),-1,var 1,var2) from dual
sign()函式根據某個值是0、正數還是負數,分別返回0、1、-1
sql測試
select decode(sign(100-90),-1,100,90) from dual
輸出結果
90100-90=10>0 則會返回1,所以decode函式最終取值為90
反正select decode(sign(100-90),1,100,90) from dual
輸出結果
100100-90=10>0返回1,判斷結果為1,返回第乙個變數100,最終輸出結果為100
3:使用decode函式分段
工資大於5000為高薪,工資介於3000到5000為中等,工資小於3000為低薪
sql測試
select ename,sal,
decode(sign(sal - 5000), 1, 'high sal', 0, 'high sal', - 1,
decode(sign(sal - 3000),1, 'mid sal', 0, 'mid sal', - 1,
decode(sign(sal - 1000),1, 'low sal',0, 'low sal', - 1, 'low sal')))
from emp
4:利用decode實現表或者試圖的行列轉換
sql測試
select
sum(decode(ename,'smith',sal,0)) smith,
sum(decode(ename,'allen',sal,0)) allen,
sum(decode(ename,'ward',sal,0)) ward,
sum(decode(ename,'jones',sal,0)) jones,
sum(decode(ename,'martin',sal,0)) martin from emp
輸出結果如下
smith allen ward jones martin
800 1600 1250 2975 1250
5:使用decode函式來使用表示式來搜尋字串
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)
decode函式比較表示式和搜尋字,如果匹配,返回結果;如果不匹配,返回default值;如果未定義default值,則返回空值。
sql測試
select ename,sal,
decode(instr(ename, 's'), 0,'不含有s', '含有s') as info
from emp
oracle的decode 含義及使用介紹
含 釋 decode 條件,值1,返回值1,值2,返回值2,值n,返回值n,預設值 該函式的含義如下 if 條件 值1 then return 翻譯值1 elsif 條件 值2 then return 翻譯值2 elsif 條件 值n then return 翻譯值n else return 預設值...
DECODE函式的使用
decode函式是oracle pl sql是功能強大的函式之一,目前還只有oracle公司的sql提供了此函式,其他資料庫廠商的sql實現還沒有此功能。decode有什麼用途呢?先構造乙個例子,假設我們想給智星職員加工資,其標準是 工資在8000元以下的將加20 工資在8000元以上的加15 通常...
SQL中 decode 函式介紹
decode 函式的語法 1 select decode columnname,值1,翻譯值1,值2,翻譯值2,值n,翻譯值n,預設值 2 3 from talbename 4 5 where 其中 columnname為要選擇的table中所定義的column 預設值可以是你要選擇的column ...