oracle數(shù)據(jù)庫(kù)decode用法 sql decode函數(shù)用法?
sql decode函數(shù)用法?decode函數(shù)比較1個(gè)參數(shù)時(shí)SELECT ID,DECODE(inParam,"beComparedParam","值1" ,"值2") name FROM bank#
sql decode函數(shù)用法?
decode函數(shù)比較1個(gè)參數(shù)時(shí)
SELECT ID,DECODE(inParam,"beComparedParam","值1" ,"值2") name FROM bank
#如果第一個(gè)參數(shù)inParam=="beComparedParam",則select得到的name顯示為值1,
#如果第一個(gè)參數(shù)inParam!="beComparedParam",則select得到的name顯示為值2
decode函數(shù)比較多個(gè)參數(shù)時(shí)
SELECT ID,DECODE(inParam,"para1","值1" ,"para2","值2","para3","值3","para4","值4","para5","值5") name FROM bank
#如果第一個(gè)參數(shù)inParam=="para1"那么那么select得到的那么顯示為值1;
#如果第一個(gè)參數(shù)inParam=="para2"那么那么select得到的那么顯示為值2;
#如果第一個(gè)參數(shù)inParam=="para3"那么那么select得到的那么顯示為值3;
#如果第一個(gè)參數(shù)inParam=="para4"那么那么select得到的那么顯示為值4;
#如果第一個(gè)參數(shù)inParam=="para5"那么那么select得到的那么顯示為值5;
sql decode函數(shù)里面有多個(gè)值怎么辦?
1, deocde 與 case when 的作用相同,用于不同條件分支的不同處理。于case when 相比只是用法不同。同樣可以嵌套和滿足多個(gè)值。
2,多個(gè)值
decode(name, "Wang", "001", "Li", "002", "003")
相當(dāng)于
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",""))
相當(dāng)于
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中實(shí)現(xiàn)oracledecode的功能,并寫成一個(gè)函數(shù)?
create function uf_decode(@argu varchar(999))returns integerasbegin --對(duì)@argu進(jìn)行分解 --使用動(dòng)態(tài)SQL組織CASE語(yǔ)法結(jié)構(gòu)end引用uf_decode時(shí)把參數(shù)以一個(gè)字符串的形式傳入﹐你再試試﹐如果不行﹐晚上我?guī)湍銓憽?