亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle DECODE函數語法使用介紹

2024-08-29 13:55:25
字體:
來源:轉載
供稿:網友
Oracle DECODE函數功能很強,下面就為您詳細介紹Oracle DECODE函數的用法,希望可以讓您對Oracle DECODE函數有更多的了解。

Oracle DECODE函數

Oracle DECODE函數是Oracle公司獨家提供的功能,它是一個功能很強的函數。它雖然不是SQL的標準,但對于性能非常有用。到目前,其他的數據庫供應商還不能提供類似DECODE的功能,甚至有的數據庫的供應商批評Oracle的SQL不標準。實際上,這種批評有些片面或不夠水平。就象有些馬車制造商抱怨亨利。福特的“馬車”不標準一樣。

1 DECODE 中的if-then-else邏輯

在邏輯編程中,經常用到If – Then –Else 進行邏輯判斷。在DECODE的語法中,實際上就是這樣的邏輯處理過程。它的語法如下:
DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某個表的任何類型的任意列或一個通過計算所得的任何結果。當每個value值被測試,如果value的值為if1,Decode 函數的結果是then1;如果value等于if2,Decode函數結果是then2;等等。事實上,可以給出多個if/then 配對。如果value結果不等于給出的任何配對時,Decode 結果就返回else 。
需要注意的是,這里的if、then及else 都可以是函數或計算表達式。
含義解釋:
DECODE(條件,值1,翻譯值1,值2,翻譯值2,...值n,翻譯值n,缺省值)

該函數的含義如下:
IF 條件=值1 THEN
RETURN(翻譯值1)
ELSIF 條件=值2 THEN
RETURN(翻譯值2)
......
ELSIF 條件=值n THEN
RETURN(翻譯值n)

ELSE
RETURN(缺省值)
END IF

2 DECODE 的簡單例子

Oracle系統中就有許多數據字典是使用decode 思想設計的,比如記錄會話信息的V$SESSION數據字典視圖就是這樣。我們從《Oracle8i/9i Reference》資料中了解到,當用戶登錄成功后在V$SESSION中就有該用戶的相應記錄,但用戶所進行的命令操作在該視圖中只記錄命令的代碼 (0—沒有任何操作,2—Insert…),而不是具體的命令關鍵字。因此,我們需要了解當前各個用戶的名字及他們所進行的操作時,要用下面命令才能得到 詳細的結果:

復制代碼 代碼如下:


select sid,serial#,username,
DECODE(command,
0,'None',
2,'Insert',
3,'Select',
6,'Update',
7,'Delete',
8,'Drop',
‘Other') cmmand
from v$session where username is not null;



3 DECODE實現表的轉置

數據庫中的表是由列和行構成
的一個二維表。一般列在任何數據庫中都是有限的數量,而行的變化較大,如果表很大,行的數量可能大上千萬行。同一列的不同行可能有不同的值,而且不是預先定義的。
例:住房公積金報表置換實例:
1.各個單位在本地經辦行進行開戶,開戶就是將單位的基本信息和職工信息的進行登記;
2.每月各個單位的會計到經辦行交繳本單位的所有職工的住房公積金,系統記錄有每個職工的交繳明細并在每條記錄上記錄有經辦行的代碼;
3.每月、季、半年及年終都要求將經辦行 變為“列”給出個月的明細報表:
經辦行:城西區 城東區
月份:
2001.01 xxxx1.xx xxxxx2.xx
2001.02 xxxx3.xx xxxxx4.xx
。 。 。 。 。 。
原來的數據順序是:
城西區2001.01 xxxxx1.xx
城東區2001.01 xxxxx2.xx
城西區2001.02 xxxxx3.xx
城東區2001.02 xxxxx4.xx
住房公積金系統記錄職工的每月交繳名細的pay_lst表結構是:

bank_code varchar2(6)NOT NULL, -- 經辦行代碼
acc_no varchar2(15) not null, -- 單位代碼(單位帳號)
emp_acc_no varchar2(20) not null, -- 職工帳號
tran_date date not null, -- 交繳日期
tran_val Number(7,2) not null, -- 交繳額
sys_date date default sysdate, --系統日期
oper_id varchar2(10) --操作員代碼

這樣的表結構,一般按照將經辦行作為行(row)進行統計是很容易的,但是如果希望將經辦行變為列(column)這樣的格式來輸出就有困難。如果用DECODE函數來處理則變得很簡單:
我們創建一個視圖來對目前的pay_lst表進行查詢。將經辦行代碼變為一些具體的經辦行名稱即可:

復制代碼 代碼如下:


CREATE OR REPLACE VIEW bank_date_lst AS
Select to_char(tran_date,'yyyy.mm'),
SUM( DECODE ( bank_code,'001', tran_val,0 )) 城西區,
SUM( DECODE ( bank_code,'002', tran_val,0 )) 城南區,
SUM( DECODE ( bank_code,'003', tran_val,0 )) 城東區
FROM pay_lst
GROUP BY to_char(tran_date,'yyyy.mm');


建立視圖后,可直接對該視圖進行查詢就可按照列顯示出結果。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲国产另类| 久久成人国产精品| 国产精品日本精品| 国产精国产精品| 日韩黄色高清视频| 国产性猛交xxxx免费看久久| 热re99久久精品国产66热| 国产日韩欧美在线看| 欧美尺度大的性做爰视频| 国产一区二中文字幕在线看| 日韩专区在线播放| 97人洗澡人人免费公开视频碰碰碰| 国产精品jizz在线观看麻豆| 成人性生交大片免费看视频直播| 日韩精品中文在线观看| 日韩久久精品电影| 中文字幕亚洲欧美一区二区三区| 亚洲天堂精品在线| 亚洲人成网站999久久久综合| 国产视频福利一区| 国产视频福利一区| 国产99视频精品免视看7| 亚洲第一区中文99精品| 人人爽久久涩噜噜噜网站| 日韩在线国产精品| 一区二区国产精品视频| 亚洲人精选亚洲人成在线| 日韩免费黄色av| 久久久久久久久久久免费| 欧美激情亚洲激情| 欧美另类老肥妇| 青青久久av北条麻妃海外网| 97**国产露脸精品国产| 久久久久久美女| www国产精品视频| 久久久久999| 日韩一区av在线| 亚洲在线免费视频| 久久久久久免费精品| 91精品国产乱码久久久久久蜜臀| 亚洲一区二区中文| 97精品伊人久久久大香线蕉| 色青青草原桃花久久综合| 国产精品一区二区av影院萌芽| 日韩精品在线影院| 久久亚洲精品视频| 日韩精品视频在线免费观看| 久久综合电影一区| 国产日韩精品一区二区| 91免费欧美精品| 国产欧美 在线欧美| 91精品免费久久久久久久久| 97碰碰碰免费色视频| 亚洲国产福利在线| 色婷婷综合久久久久中文字幕1| 国产91对白在线播放| 欧美激情乱人伦| 黑人巨大精品欧美一区二区| 国产精品一区二区三区久久久| 日韩视频精品在线| 成年人精品视频| 91九色综合久久| 91久热免费在线视频| 日韩在线视频网站| 欧美日韩一区二区免费视频| 亚洲美女精品久久| 日韩中文有码在线视频| 91免费视频网站| 亚洲老板91色精品久久| 亚洲一区二区三区毛片| 精品国产乱码久久久久久婷婷| 中文字幕亚洲欧美一区二区三区| 成人在线激情视频| 国产99久久精品一区二区| 久久久999精品| 91精品国产乱码久久久久久蜜臀| 久久精品国产一区二区电影| 久久久久久久一区二区| 国产精品色视频| 亚洲精品中文字幕有码专区| 久久久精品2019中文字幕神马| 亚洲欧美国产一本综合首页| 国产精品黄页免费高清在线观看| 国产精品网红福利| 亚洲日本中文字幕| www.日韩系列| 国产成人激情小视频| 亚洲japanese制服美女| 久久久久国产精品一区| 色视频www在线播放国产成人| 成人av色在线观看| 日韩精品中文在线观看| 国自产精品手机在线观看视频| 欧美日韩成人在线视频| 日本国产一区二区三区| 欧美性理论片在线观看片免费| 黑人巨大精品欧美一区免费视频| 国产91在线高潮白浆在线观看| 国产91ⅴ在线精品免费观看| 91中文字幕在线| 亚洲国产日韩欧美在线99| 欧美极品美女视频网站在线观看免费| 国产91色在线免费| 亚洲综合大片69999| 欧美日韩第一视频| 2019中文字幕在线免费观看| 中文字幕亚洲欧美在线| 中文字幕综合一区| 国产精品精品视频一区二区三区| 欧美中文在线免费| 91探花福利精品国产自产在线| 亚洲国产成人在线播放| 久久成人人人人精品欧| 伊人久久久久久久久久久久久| 亚州国产精品久久久| 成人激情av在线| 色七七影院综合| 国产精品免费观看在线| 国产精品欧美日韩| 国产精品白嫩美女在线观看| 日本久久91av| 精品久久久久久久久久国产| 亚洲精品自拍视频| 一区二区欧美日韩视频| 欧美性xxxxx极品| 中文字幕精品一区久久久久| 国产亚洲精品久久| 精品久久久久久亚洲精品| 成人精品aaaa网站| 欧美黑人一级爽快片淫片高清| 亚洲成人性视频| 欧美日本在线视频中文字字幕| 欧美大片免费观看在线观看网站推荐| y97精品国产97久久久久久| 久久久久久中文字幕| 亚洲直播在线一区| 国产精品男人爽免费视频1| 亚洲欧美一区二区三区四区| 成人亚洲激情网| 亚洲影影院av| 亚洲欧美成人在线| 日韩午夜在线视频| 欧美华人在线视频| 日韩精品在线影院| 久久99亚洲精品| 欧美国产日韩免费| 成人免费直播live| 欧美精品在线极品| 夜夜嗨av一区二区三区四区| 中文字幕久精品免费视频| 在线精品国产欧美| 亚洲a∨日韩av高清在线观看| 日韩美女激情视频| 欧美黄色性视频| 日韩免费看的电影电视剧大全| 亚洲一区二区三区777| 亚洲欧美日韩国产精品| 日韩大片在线观看视频| 亚洲美女免费精品视频在线观看| 色偷偷综合社区| 久久久久久一区二区三区| 亚洲va久久久噜噜噜| 亚洲欧美变态国产另类| 欧美国产日韩精品|