Oracle 函數(shù)decode的用法簡(jiǎn)介
以下的文章主要是介紹Oracle 函數(shù)decode,我們都知道decode函數(shù)將該數(shù)值和c一系列的相關(guān)序偶相比較來(lái)決定最終的相關(guān)的返回結(jié)果 。所謂的序偶,簡(jiǎn)單的說(shuō)就是成對(duì)的出現(xiàn);我們將這個(gè)函數(shù)與switch比較。
我們發(fā)現(xiàn)他們基本相似,***不同的是switch將要比較的值放在case后面都加上了break中。
以下一個(gè)例子:(我直接從網(wǎng)上找的)
- SELECT id,
- decode(flag,’Y’,'Yes’,'N’,’No’,NULL,’None’,'Yes’)
- FROM t_test;
當(dāng)t_test的flag字段為Y時(shí)返回Yes,為N時(shí)返回No,為NULL時(shí)返回None,默認(rèn)返回Yes。
看看我遇到的問(wèn)題:
- SELECT a.id,
- a.user_name,
- a.oper_time time2,
- a.oper_type,
- a.description,
- a.oper_flag,
- decode(a.oper_flag, '1', '成功', '失敗') oper_flag,
- a.ip,
- b.true_name
- FROM SEC_LOG_OPERATION a
- left join sec_user b on a.user_name = b.user_name
- where 11 = 1
- order by oper_time desc
原來(lái)這紅線部分是:
Oracle 函數(shù)decode(a.oper_flag, 1, '成功', '失敗')
我在查詢的時(shí)候會(huì)報(bào)錯(cuò),原因是oper_flag這個(gè)字段數(shù)據(jù)中有非數(shù)字類型,也就是這個(gè)字段不僅有1、0,還有“失敗”,這樣數(shù)據(jù)!=字符。所以我們把1當(dāng)字符處理就可以了。
【編輯推薦】