1. 程式人生 > >Oracle 的函數

Oracle 的函數

截取 英文 logs mat ext num 測試 根據 pda

Oracle 的函數

分類

  

單行函數: 對每一行輸入值進行計算,得到相應的計算結果,返回給用戶,也就是說,

每一行作為一個輸入參數,通過函數計算得到每行的計算結果。比如說length

技術分享

多行函數:對多行輸入值進行計算,得到多行對應的多個結果,比如max,min等

技術分享

單行函數

技術分享

字符函數:

用於處理字符的業務

replace(char 1,search_string,replace_string)

舉例:

在emp表中的ename列中替換所有的A

select replace(ename,’A’,’替換後的A’) from emp;

技術分享

instr( C1,C2,I,J)

C1 被搜索的字符串

C2 希望搜索的字符串

I 搜索開始的位置

J 出現的位置,默認為1

舉例:

select instr(‘Oracle index string function’,’s’,1,2) from dual;

技術分享

ascii(‘要轉換的字符’) 返回與指定的字符對應的十進制數

案例:

select ascii(‘A‘) A,ascii(‘a‘) as a,ascii(‘0‘) as zero,ascii(‘ ‘) as space from dual;

技術分享

chr(int) 給出整數,返回對應的字符

案例:

select chr(54740) as zh,chr(65) as c6 from dual;

技術分享

concat 連接字符串

案例:

select concat(ename,‘ 是好人‘) from emp;

等效:

select ename || ‘是好人’ from emp;

技術分享

initcap 字符轉換首字母大寫

案例:

select initcap(‘abc‘) from dual;

技術分享

length 計算字符串長度 ,不區分中英文

案例:

找出emp表中字符是4的員工

select * from emp where length(ename) = 4;

技術分享

lower和upper函數 全部變小寫 / 全部變大寫

綜合:

把員工的名字首字母小寫,其他字母大寫?

select concat(lower(substr(ename,1,1)),upper(substr(ename,2,length(ename)-1))) from emp;

技術分享

lpad 和 rpad 左填充/右填充

案例:

select lpad(‘ 測試’,14,’左填左填’) from dual;

技術分享

ltrim 和 rtrim 坐裁剪/右裁剪

案例:

select rtrim(‘right trim oooooooo‘,‘o‘) from dual;

技術分享

-------------------------------------------------------

裁剪全部o

trim 裁剪指定字符,僅支持單字符

select trim(‘t‘ from ‘the is a trim‘) from dual;

技術分享

數字函數:

ceil函數 用於向上取整

select ceil(3.1415926) from dual;

技術分享

floor 用於向下取整

技術分享

mod(m,n) 取模,如果n是0,返回m

技術分享

round函數,用於四舍五入

技術分享

trunk函數,用於截取一個整數

 技術分享

add_months (日期值,增加||減少的月份)

顯示最近三個月入職的員工

技術分享

技術分享

-------------------------------------------

sysdate : 顯示當前日期

last_day 顯示當月最後一天

技術分享

next_day 顯示最近指定的日期

技術分享

to_char(number) 轉換指定數值格式

案例:

select to_char(sal,‘L999G999D99‘) FROM emp;

技術分享

9: 表示一個數字

L:表示本地貨幣樣式

G: 分組分隔符(使用本地化)

D:表示逗號

根據deptno編號顯示不同的信息

select decode(deptno,10,‘10號部門‘,20,‘20號部門‘,30,‘30號部門‘) from emp;

技術分享

to_date(string,format); --將字符串轉換成日期

舉例:

insert into emp(empno,hiredate) values(7777,to_date(‘2017-8-6‘,‘yyyy-mm-dd‘));

說明:

to_char 是使日期轉換成字符

to_date 是使字符轉換成日期

系統函數:

功能:用於查詢系統信息;

視頻筆記:

技術分享

小技巧

使用子查詢完成行遷移

格式: create table 表名 as select 列名1[ ,列名2 …]from 待復制表 [where]

使用子查詢完成更新

案例:

希望員工scott的崗位、工資、補助與smith員工一樣

傳統:update emp set job = (select job from emp where ename = ‘smith’),sal = (sele….),comm = (sele….) where enmae = ‘scott’;

快捷:update emp set (job,sal,comm) = (select job,sal,comm from emp where ename = ‘’smith) where ename = ‘scott’;

Oracle 的函數