oracle數據庫decode用法 sql decode函數用法?
sql decode函數用法?decode函數比較1個參數時SELECT ID,DECODE(inParam,"beComparedParam","值1" ,"值2") name FROM bank#
sql decode函數用法?
decode函數比較1個參數時
SELECT ID,DECODE(inParam,"beComparedParam","值1" ,"值2") name FROM bank
#如果第一個參數inParam=="beComparedParam",則select得到的name顯示為值1,
#如果第一個參數inParam!="beComparedParam",則select得到的name顯示為值2
decode函數比較多個參數時
SELECT ID,DECODE(inParam,"para1","值1" ,"para2","值2","para3","值3","para4","值4","para5","值5") name FROM bank
#如果第一個參數inParam=="para1"那么那么select得到的那么顯示為值1;
#如果第一個參數inParam=="para2"那么那么select得到的那么顯示為值2;
#如果第一個參數inParam=="para3"那么那么select得到的那么顯示為值3;
#如果第一個參數inParam=="para4"那么那么select得到的那么顯示為值4;
#如果第一個參數inParam=="para5"那么那么select得到的那么顯示為值5;
sql decode函數里面有多個值怎么辦?
1, deocde 與 case when 的作用相同,用于不同條件分支的不同處理。于case when 相比只是用法不同。同樣可以嵌套和滿足多個值。
2,多個值
decode(name, "Wang", "001", "Li", "002", "003")
相當于
case
when name = "Wang"
then "001"
when name = "Li"
then "002"
else "003"
end
3, 嵌套
decode(name, "Wang", decode(sno, "001", "Yes", ""), "Li", decode(sno,"002","Yes",""), decode(sno, "003","Yes",""))
相當于
case
when name = "Wang"
then case
when sno="001"
then "Yes"
else ""
end
when name="Li"
then case
when sno="002"
then "Yes"
else ""
end
else case
when sno="003"
then "Yes"
else ""
end
end
如何在sqlserver中實現oracledecode的功能,并寫成一個函數?
create function uf_decode(@argu varchar(999))returns integerasbegin --對@argu進行分解 --使用動態SQL組織CASE語法結構end引用uf_decode時把參數以一個字符串的形式傳入﹐你再試試﹐如果不行﹐晚上我幫你寫。