a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 數據庫 > Oracle > 正文

Oracle數據庫中COALESCE函數使用詳解

2024-08-29 13:50:50
字體:
來源:轉載
供稿:網友
數據庫應用軟件很多時候將多重的、相關的實體信息保存在同一個表格中。例如,購買的零件和本地生產的零件都是零件,經理和工人都是員工,盡管多重的實體類型在數據存儲上略有不同,但是它們有太多的相同之處,因此通常使用一個表格而不是兩個。 處理這樣的表格通常意味著對每一行進行條件測試來檢查哪個實體類型正在被處理,然后返回每種類型的不同結果集。CASE語句可以用來完成這一工作。 從Oracle 9i版開始,COALESCE函數在很多情況下就成為替代CASE語句的一條捷徑,COALESCE的格式如下:
COALESCE (eXPRession_1, expression_2, ...,expression_n)
列表中第一個非空的表達式是函數的返回值,假如所有的表達式都是空值,最終將返回一個空值。 使用COALESCE的秘密在于大部分包含空值的表達式最終將返回空值(連接操作符“”是一個值得注重的例外)。例如,空值加任何值都是空值,空值乘任何值也都是空值,依此類推。 這樣您就可以構建一系列表達式,每個表達式的結果是空值或非空,這就像一個CASE語句,表達式按照順序進行測試,第一個滿足條件的值就確定了結果。 列表A展示了名為PARTS的表格的一部分,該表格存儲了購買的零件數據和生產的零件數據,假如是購買的零件,那么part_type列的值為‘P’,假如是本地生產或組裝的則是‘B’;此外,對于購買的零件,purchase_cost 列會顯示購買成本,而本地生產的零件則是空值;而且,本地生產的零件還有material_qty和material_cost兩列的信息,對于購買的零件則是空值。
SQL> desc partsName Null? TypePART_ID NOT NULL NUMBER(6)PART_TYPE NOT NULL CHAR(1)(other columns)PURCHASE_COST NUMBER(8,2)MATERIAL_COST NUMBER(8,2)MATERIAL_QTY NUMBER(6)LAST_UPDATED TIMESTAMP(6)UPDATED_BY VARCHAR2(30)
列表A:
您可以使用一個CASE語句來測試part_type列的值并返回either purchase_cost和material_qty列與material_cost列的乘積;不過COALESCE可以用一行語句解決這個問題:
COALESCE(purchase_cost, material_qty * material_cost)
假如數據行中存儲的是一個購買的零件,那么purchase_cost就不是空值,將返回purchase_cost的值;然而,對于本地生產的零件,purchase_cost是空值,COALESCE會忽略它,然后將material_qty和material_cost相乘,并將乘積作為結果返回。
SELECT part_id "Part", part_type "Type",COALESCE(purchase_cost, material_qty * material_cost) "Cost"FROM parts;
您可以對任何數量的表達式重復使用這個模式,COALESCE是一個非常便捷的方法對統一表格中的多重實體求值。 最后,還要說一點CASE語句的優點,就是CASE是自動進行文檔記錄的,這便于理解和解讀正在發生的事情。


上一篇:Oracle數據庫中時間間隔型數據分析

下一篇:在Oracle中監控和跟蹤索引使用情況

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 亚洲视频中文字幕 | gogo熟少妇大胆尺寸 | 国产成人在线免费观看 | 超碰人人射 | 久草在线观看福利视频 | av2014天堂网| 男人的天堂视频 | 亚洲国产精品一区二区久久 | 国产一区二区三区久久久 | 伊人伊人| 久久久久久国产精品 | 97国产一区二区精品久久呦 | 国产区亚洲 | www.操操操.com | 男人的天堂视频 | h视频在线免费 | 色久在线 | 欧美二区在线 | 伊人免费在线观看高清版 | 中文字幕在线视频网站 | 日韩三级电影在线观看 | 亚洲精品一区二区三区四区高清 | 老黄网站在线观看 | 97色资源| 99在线精品视频 | 九九亚洲 | 黄久久久 | 狠狠艹av| 日本在线免费观看 | 亚洲美女一区二区三区 | 91中文字幕在线观看 | 亚洲最色视频 | 日韩91| 日本中文字幕一区 | 国产成人久久精品麻豆二区 | 色伊人 | 亚洲人人| 国内精品一区二区 | 成人精品视频在线观看 | 久久这里有精品 | 亚洲色图偷拍自拍 |