oracle中decode函數(shù)
1.oracle中decode函數(shù)
DECODE函數(shù)相當(dāng)于一條件語句(IF).它將輸入數(shù)值與函數(shù)中的參數(shù)列表相比較,根據(jù)輸入值返回一個(gè)對(duì)應(yīng)值。函數(shù)的參數(shù)列表是由若干數(shù)值及其對(duì)應(yīng)結(jié)果值組成的若干序偶形式。當(dāng)然,如果未能與任何一個(gè)實(shí)參序偶匹配成功,則函數(shù)也有默認(rèn)的返回值。區(qū)別于SQL的其它函數(shù),DECODE函數(shù)還能識(shí)別和操作空值.
其具體的語法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 試圖處理的數(shù)值。DECODE函數(shù)將該數(shù)值與一系列的序偶相比較,以決定最后的返回結(jié)果
value 是一組成序偶的數(shù)值。如果輸入數(shù)值與之匹配成功,則相應(yīng)的結(jié)果將被返回。對(duì)應(yīng)一個(gè)空的返回值,可以使用關(guān)鍵字NULL于之對(duì)應(yīng)
result 是一組成序偶的結(jié)果值
default_result 未能與任何一序偶匹配成功時(shí),函數(shù)返回的默認(rèn)值
下面的例子說明了,如何讀取用戶CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的項(xiàng)目,作為DECODE函數(shù)的實(shí)參支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM checkup;
2.oracle中to char和to date的區(qū)別
o char 是把日期或數(shù)字轉(zhuǎn)換為字符串
to date 是把字符串轉(zhuǎn)換為數(shù)據(jù)庫中得日期類型
轉(zhuǎn)換函數(shù)Ø
TO_CHAR²
使用TO_CHAR函數(shù)處理數(shù)字
TO_CHAR(number, '格式')
TO_CHAR(salary,’$99,999.99’);
使用TO_CHAR函數(shù)處理日期
TO_CHAR(date,’格式’);
TO_NUMBER²
使用TO_NUMBER函數(shù)將字符轉(zhuǎn)換為數(shù)字
TO_NUMBER(char[, '格式'])
TO_DATE²
使用TO_DATE函數(shù)將字符轉(zhuǎn)換為日期
TO_DATE(char[, '格式'])
數(shù)字格式格式²
9 代表一個(gè)數(shù)字
0 強(qiáng)制顯示0
$ 放置一個(gè)$符
L 放置一個(gè)浮動(dòng)本地貨幣符
. 顯示小數(shù)點(diǎn)
, 顯示千位指示符
² 日期格式
格式控制 描述
YYYY、YYY、YY 分別代表4位、3位、2位的數(shù)字年
YEAR 年的拼寫
MM 數(shù)字月
MONTH 月的全拼
MON 月的縮寫
DD 數(shù)字日
DAY 星期的全拼
DY 星期的縮寫
AM 表示上午或者下午
HH24、HH12 12小時(shí)制或24小時(shí)制
MI 分鐘
SS 秒鐘
SP 數(shù)字的拼寫
TH 數(shù)字的序數(shù)詞
“特殊字符” 假如特殊字符
HH24:MI:SS AM 15:43:20 PM
DD “OF” MONTH 12 OF OCTOBER
DDSPTH fourteenth
Date的格式 ’18-5月-84’
3 NVL() 函數(shù)
從兩個(gè)表達(dá)式返回一個(gè)非 null 值。
語法
NVL(eExpression1, eExpression2)
參數(shù)
eExpression1, eExpression2
如果 eExpression1 的計(jì)算結(jié)果為 null 值,則 NVL( ) 返回 eExpression2。如果 eExpression1 的計(jì)算結(jié)果不是 null 值,則返回 eExpression1。eExpression1 和 eExpression2 可以是任意一種數(shù)據(jù)類型。如果 eExpression1 與 eExpression2 的結(jié)果皆為 null 值,則 NVL( ) 返回 .NULL.。
返回值類型
字符型、日期型、日期時(shí)間型、數(shù)值型、貨幣型、邏輯型或 null 值
說明tb
在不支持 null 值或 null 值無關(guān)緊要的情況下,可以使用 NVL( ) 來移去計(jì)算或操作中的 null 值。
select nvl(a.name,'空得') as name from student a join school b on a.ID=b.ID
注意:兩個(gè)參數(shù)得類型要匹配
posted on 2012-05-31 10:24 chen11-1 閱讀(1747) 評(píng)論(0) 編輯 收藏 所屬分類: oracle