ORACLE函式介紹第八篇 綜述
通過前面章節的練習我們可以對三類函式特徵做些描述。
單值函式多數處理單個或多個值但只返回單個值(SYS_CONNECT_BY_PATH除外)。
聚合函式多數處理多行並且各分組序列分別返回成一行。
分析函式多數處理多行並且每條記錄均會有返回。
需要注意不同型別函式可被應用的範圍。
單值函式可應用範圍最為廣泛,select語句中的每一處都可被嵌入。
聚合函式通常會配合group by被應用於select或having子句,
分析函式只能應用於select或order by子句。
雖然我們前面介紹了百十多個函式,可是仍然並非全部,並且即使是我們介紹到的,也不能說所有函式都已經介紹了其全部的特色,比如:對於substr,length,instr(like)等均有擴充套件形式。比如
substr:以字元為單位
substrb:以位元組為單位
substrc:以unicode完全字元為單位
substr2:以UCS2程式碼點為單位
substr4:以UCS4程式碼點為單位
它們對於字元的處理方式都是一致的,只不過在我們看來相同的字元在它們看來可能就不同,這就是不同編碼的原因。關於unicode,ucs程式碼概念介紹可以看看這裡:http://www.vscodes.com/article/5/104/2227.html
Oracle中函式功能強大,分類細緻,某些地方構思異常巧妙。
引數中的小數點
我們以CEIL為例
SELECT CEIL(12.8) FROM DUAL;
值是什麼?
負數也有學問
我們先以LPAD函式為例。一個非常簡單的補值單值函式。
SELECT LPAD('Let us go!',5,'-') FROM DUAL;
猜猜這個會返回什麼值呢?
SELECT LPAD('Let us go!',20,'-') FROM DUAL;
猜猜這個又會返回什麼值呢?
SELECT LPAD('Let us go!',-5,'-') FROM DUAL;
再猜猜這個會返回什麼值呢?
再以SUBSTR為例:
SELECT SUBSTR('Let us go!',-5,5) FROM DUAL;
這個將要返回什麼值呢?
SELECT SUBSTR('Let us go!',-5,-5) FROM DUAL;
這個又將會返回什麼值呢?
小心隱藏參
我們仍然以LPAD為例:
SELECT LPAD('Let us go!',20) FROM DUAL;
猜猜這個返回什麼值呢?
SELECT SUBSTR('Let us go!',-5) FROM DUAL;
這個將要返回什麼值呢?
SELECT TRUNC(12.8251) FROM DUAL;
這個又將會返回什麼值呢?
諸如此類在oracle的函式中是比比旨是,比如:substr,instr,trim等等~~~~箇中奧妙還需個自體會。
Oracle中還提供了一批函式用來操縱xml資料,比如:XMLAGG,XMLCOLATTVAL,XMLCONCAT,XMLFOREST,XMLSEQUENCE,XMLTRANSFORM,EXTRACT(XML),UPDATEXML等,功能強悍,不過演示環境搭建稍嫌複雜,三言二語也說不清楚,我這裡就不多做介紹了。感興趣的話可以檢視oracle官方文件或者直接跟我交流。
如果以上種種仍然不能滿足你的需求,你還可以通過自己建立function的方式來實現,建立的語法格式非常簡單,不屬於本章內容就不多做介紹了,如果你想找個示例的話,俺之前寫過一個oracle下的郵件傳送有相關示例可供你參考,地址如下:http://www.itpub.net/825426.html。
最後補充一句再強大的功能,還是需要能夠靈活使用才能夠體現其價值,所以瞭解並不是我們的目地,熟練應用才是我們的目標:)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-22285/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE函式介紹第五篇 分析函式簡述Oracle函式
- 損失函式綜述函式
- ORACLE函式介紹Oracle函式
- oracle常用函式介紹Oracle函式
- oracle REPLACE 函式 介紹Oracle函式
- oracle 日期函式介紹Oracle函式
- 【函式】Oracle TRIM函式語法介紹函式Oracle
- Oracle 的基本函式介紹Oracle函式
- JSP標籤庫介紹(1)綜述 (轉)JS
- 原創:oracle聚合函式介紹Oracle函式
- Oracle 8 的函式介紹(轉)Oracle函式
- Oracle 分析函式使用介紹(轉)Oracle函式
- 聯邦GNN綜述與經典演算法介紹GNN演算法
- ORACLE函式介紹第三篇 著名函式之聚合函式Oracle函式
- ORACLE函式介紹第六篇 著名函式之分析函式Oracle函式
- ORACLE函式介紹第四篇 非著名函式之聚合函式Oracle函式
- TypeScript 函式介紹TypeScript函式
- oracle中函式to_char()的用法介紹Oracle函式
- [三思筆記]-oracle函式介紹筆記Oracle函式
- ORACLE函式介紹第一篇 著名函式之單值函式Oracle函式
- ORACLE函式介紹第二篇 非著名函式之單值函式Oracle函式
- ORACLE函式介紹第七篇 非著名函式之分析函式Oracle函式
- 機器學習基本函式介紹機器學習函式
- replaceChild()函式用法介紹函式
- lpad函式介紹函式
- CUDA常用函式介紹函式
- Trim() 函式的介紹函式
- GCD、dispatch 函式介紹GC函式
- cuda函式庫介紹函式
- 分散式快取架構綜述分散式快取架構
- 函式表示式和函式宣告簡單介紹函式
- Dart建構函式介紹Dart函式
- javascript函式中with的介紹JavaScript函式
- funclib函式庫介紹函式
- 網路常用函式介紹函式
- prototype.js函式介紹JS函式
- HTML介紹詳述HTML
- Signal ()函式詳細介紹 Linux函式函式Linux