oracle單行函式

2021-05-11 09:31:44 字數 3577 閱讀 2037

單行函式:

函式類別:

單行:返回單個結果:substr,length

多行:返回多個結果,any,all

單行的分類:

字元類,日期類,數字類,轉換類,通用類

1.字元類

轉換大小寫:

lower:轉換為小寫

select ename,lower(ename) from emp

upper:轉換為大寫

select upper('abcd') from dual

initcap :首字母大寫

select initcap(ename) from emp

2.字元處理類

concat:連線兩個不同的列,concat只能接受兩個引數

select concat(empno,ename) from emp

select concat('a','b') from dual

substr:擷取子串

下標從1開始

select substr(ename,2) from emp--從第2個位置截到末尾

select substr(ename,2,3) from emp--從第2個位置擷取3個

length:提取長度

select ename,length(ename) from emp

instr:相當於string類中的indexof,求索引

select ename,instr(ename,'a') from emp

lpad和rpad的用法

表示補充的含義

select lpad(sal,10,'*') from emp

select rpad(sal,10,'*') from emp

將sal顯示為10位,不足的位置補上字元*

trim兩邊濾空

select trim('   a b c      ') from dual

使用ltrime和rtrim過濾一邊的空格

select ltrim('   a b c      ') from dual

replace:替換

select ename ,replace(ename,'a','b') from emp

3.數字轉換類:

round:四捨五入

trunc:擷取

mod:取餘

select round(16.336666663,3) from dual

select trunc(16.33666666,3) from dual

select mod(8,3) from dual

4.日期類函式

sysdate:年月日時分秒

日期+-1,都代表一天的時間,比如:

select trunc(sysdate-365) from dual

select sysdate-1/24/60 from dual

5.日期運算函式

months_between:表示兩個日期的月份之差

select empno,hiredate,months_between(sysdate,hiredate)/12 from emp

add_months:表示給指定的日期加乙個月數

select hiredate,add_months(hiredate,3) from emp

next_day:表示以當前時間為基準,下乙個"目標日"的日期

select next_day(sysdate,'星期二') from dual

last_day:計算當前日期的最後一天

select hiredate,last_day(hiredate)-hiredate from emp

round:對日期進行四捨五入

select round(sysdate,'year') from dual

trunc:表示對日期進行擷取

select trunc(sysdate) from dual

5.to_char函式將日期轉換為字元型別

select to_char(sysdate,'yyyy-mm-dd day hh24:mi:ss am') from dual

特殊的日期轉換描述

select to_char(sysdate,'"今天是"yyyy-mm-dd day hh24:mi:ss am') from dual

6.to_char:可以對數字型別進行型別轉換,轉換的同時,你可以指定轉換後的格式,比如:90

,l$.

gd例項:select to_char(sal,'$999,999.00') from emp

7.to_number:作用是用來將乙個指定的字串型別的數字,轉換為數字格式

注意:格式必須要匹配.

select to_number('$1,600.01','$999,999.99') from dual

8.to_date:將字串型別的日期,轉換為日期型別

select to_date('2008-01==01','yyyy-mm==dd') from dual

特殊的日期格式:

select to_date('2008-01-01 星期二 10:36:31 上午','yyyy-mm-dd day hh:mi:ss pm') from dual

9,函式巢狀:

select length(lower(ename)) from emp

10.關於通用函式:

nvl:當修飾的字段的內容為null時,運算結果為指定的值

select comm,nvl(comm,200) from emp

nvl2:如果第乙個表示式的值不為null,顯示表示式2的值,否則(為null)顯示表示式3的值

select sal,comm,nvl2(comm,sal+comm,sal) from emp

nullif:如果前後兩個表示式的內容相等的,那就返回null,否則,返回第乙個表示式的值

select ename,job,nullif(length(ename),5) from emp

coalesce函式:用來匹配多個欄位的值,如果表示式1的值為null,顯示表示式2的值,如果表示式2也為空,顯

示表示式3的值,依次類推

select mgr,comm, coalesce(mgr,comm,empno,88) from emp

11.條件表示式:

兩中方式:

1.case:表示式語句

2.decode:函式,decode()

a.case語句

條件判斷

case expre when condition then value

else value

endselect job,

case job

when 'clerk' then '店員'

when 'salesman' then '銷售'

else '臨時工'

end

from emp

b.decode函式

select job,

decode(job,

'clerk','店員'

,'salesman' ,'銷售',

'臨時工'

) from emp

oracle單行函式

1.字元函式 upper 全大寫 lower 全小寫 initcap 首字母大寫 length 取長度 substr 擷取字串 replace 替換 2.數值函式 round 四捨五入 trunc 擷取 mod 取餘 3.日期函式 當前日期 sysdate 日期 數字 日期 日期 數字 日期 日期 ...

Oracle單行函式

單行函式 運算元據物件,接受引數返回乙個結果,只對一行進行變換,每行返回乙個結果,可以轉換資料型別,可以巢狀,引數可以是一列或乙個值 一 字元函式 concat 字串連線,相當於 initcap 將引數的第乙個字母變為大寫 lower 將引數轉換為全部小寫字母 upper 將引數轉換為全部大寫字母 ...

oracle單行函式

10級 學員 龐麗課堂總結 1 首先我們通過學習單行函式,要掌握sql中的不同型別的函式,在select語句中使用字元,數字和日期函式,以及了解轉換函式的用途。2 下面我們來簡單認識一下單行函式 1 運算元據物件 2 接受引數返回乙個結果 3 只對一行進行變換 4 每行返回乙個結果 5 可以轉換資料...