工作中最常用的oracle中的函數

oracle遠程連接數據庫命令:

sqlplus usr/pwd@//host:port/sid

oracle函數
(1)CONCAT()函數在Oracle中可以用於將兩個字符串連接在一起
CONCAT( string1, string2 )

SELECT CONCAT(CONCAT(CONCAT('A', 'B'),'C'),'D') FROM dual;
-- Result: 'ABCD'
由於參數包含在單引號中,因此在引號內使用2個額外的單引號來表示生成的連接字
符串中的單引號
SELECT CONCAT('Let''s', ' learn Oracle') FROM dual;
-- Result: Let's learn Oracle

(2)Oracle ||運算符

此示例查詢將返回結果集,其中一列由customers表中的first_name和last_name字
段(用空格分隔)組成。 結果集中的列將被別名爲customer_name。
SELECT 'Dave' || ' ' || 'Anderson' AS customer_name FROM dual;
-- Result: 'Dave Anderson'

(3)Oracle Convert()函數

Convert()函數語法
CONVERT( string1, char_set_to [, char_set_from] )
string1:要轉換的字符串。
char_set_to:要轉換爲的字符集。
char_set_from:可選的,要從中轉換的字符集。

(4)Oracle Initcap()函數

   Oracle中,Initcap()函數可以將每個單詞中的第一個字符設置爲大寫,其餘的
設置爲小寫。
INITCAP('tech on the oraok');
-- Result: 'Tech On The Oraok'

(5)日期轉換函數to_date()

 insert into test (birthday,name) 
 values (to_date('2016-03-12','yyyy-mm-dd'),'zy');

(6)格式轉化函數to_char()

select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;        
--將顯示時分秒 1981-02-20 00:00:00
select to_char(sal,'L99999.99') from emp;                 
--顯示本地貨幣,5位整數,兩位小數,也可以加逗號L99,999.99($3,000.00)  
select * from emp where to_char(hiredate,'mm')=12;            
--顯示12月份入職的員工

(7)對日期取整trunc()

select trunc(sysdate) from dual;  #sysdate 是系統時間

(8)對月份的加函數 add_months ,last_day

select * from test where sysdate>add_months(hiredate,1);   
--hirdate+1個月,一個月前入職的員工
select last_day(hiredate) from test;         
--取每月的最後一天

(9)trim函數

用於去除字符串左右兩邊的空格。ltrim,rtrim分別用於去除左右兩邊的空格。
select trim(' aa bb cc') from dual;
aa bb cc
去除字符串左右/中指定字符
select trim(leading/trailing/both '去除的單個字符' from '被操作的字符串') 列別名 from dual;
leading表示去除字符串左邊,trailing表示去除字符串右邊,both表示兩邊。
' ' 中包含的要去除的字符只能是一個字符。
select trim(leading 'a' from 'aa bb cc') leadingtrim from dual;
返回結果: ' bb cc'

(10)NVL(X,VALUE)

如果X爲空,返回value,否則返回X

(11)SYS_CONNECT_BY_PATH字符拼接函數

select max(substr(sys_connect_by_path(deptname,','),2)) from dept 
connect by prior deptno=mgrno;
總公司,浙江分公司,杭州分公司
行列轉化:
如把一個表的所有列連成一行,用逗號分隔:
select max(substr(sys_connect_by_path(column_name,','),2))  
from (select column_name,rownum rn from user_tab_columns where 
table_name ='DEPT') start with rn=1 connect by rn=rownum ;  
----DEPTNO,DEPTNAME,MGRNO 

(12)EXTRACT(fmt FROM d),提取日期中的特定部分。

fmt 爲:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND。其中 YEAR、MONTH、DAY可
以爲 DATE 類型匹配,也可以與 TIMESTAMP 類型匹配;
但是 HOUR、MINUTE、SECOND 必須與 TIMESTAMP 類型匹配。
例:SELECT SYSDATE "date",
   EXTRACT(YEAR FROM SYSDATE)"year",
   EXTRACT(MONTH FROM SYSDATE)"month",
   EXTRACT(DAY FROM SYSDATE)"day",
   EXTRACT(HOUR FROM SYSTIMESTAMP)"hour",
   EXTRACT(MINUTE FROM SYSTIMESTAMP)"minute",
   EXTRACT(SECOND FROM SYSTIMESTAMP)"second"
   FROM dual;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章