天天看點

oracle查詢補夠行數,Oracle常用函數

一、 單行函數

隻處理單個行,且一個函數隻傳回一個結果

1、 concat(str1,str2)字元串拼接

select ‘Hello ‘||‘World‘ from dual;

等價于

select concat(‘Hello‘,‘ World‘) from dual;

oracle查詢補夠行數,Oracle常用函數

注:

dual可以了解為oracle中存在的一張虛拟表,因為sql指令強制要求資料從某表中取得,也就是說sql語句中必須要有from指令,是以oracle定義了虛拟表dual,提供一些特殊字段的查詢,例如時間日期、算術運算等功能。

2、 initcap(str)将每個單詞首字母大寫,其他小寫

select initcap(‘hello world!‘) from dual;

--傳回結果為‘Hello World!‘

select initcap(‘HELLO WORLD!‘) from dual;

--傳回結果為‘Hello World!‘

3、 instr(x,find_string[,start][,occurrence])

傳回指定字元串在某字元串中的位置,可以指定搜尋的開始位置和傳回第幾次搜尋出來的結果

start:開始位置

occurrence:傳回第幾次搜尋出的結果

無結果傳回0

select instr(‘Hello World!‘,‘o‘) from dual;

--從1位置開始搜尋,傳回第一次出現的o的位置,結果為5

select instr(‘Hello World!‘,‘o‘,6) from dual;

--從6位置開始搜尋,傳回第一次出現的o的位置,結果為8

select instr(‘Hello World!‘,‘o‘,1,2) from dual;

--從1位置開始搜尋,傳回第二次出現o的位置,結果為8

4、 length(str)傳回表達式中的字元數

select length(‘hello world!‘) from dual;

--傳回結果為12

select length(‘張三‘) from dual;

--傳回結果為2

5、 lengthb(str)傳回表達式中的位元組數

字元集為UTF8,一個漢字三個位元組

字元集為ZHS16GBK,一個漢字兩個位元組

select lengthb(‘張三‘) from dual;

--傳回結果為6

select lengthb(‘hello world!‘) from dual;

--傳回結果為12

6、 lower(str)将字元串轉換為小寫

select lower(‘HELLO WORLD!‘) from dual;

--傳回結果為hello world!

7、 upper(str)将字元串轉換為大寫

select upper(‘hello world!‘) from dual;

--傳回結果為HELLO WORLD!

8、 lpad(str,width[,pad_string])

當字元串長度不夠時,左填充補齊,可以指定補齊時用什麼字元補齊,若不指定,則以空格補齊

select lpad(‘hello‘,10,‘*‘)

--傳回結果為*****hello

9、 rpad(str,width[,pad_string])

當字元串長度不夠時,右填充補齊,原理同左填充

原理同8、lpad()

10、 ltrim(x[,trim_string])

從字元串左側去除指定的所有字元串,若沒有指定去除的字元串,則預設去除左側空白符

注:第二個參數的每一個字元都到第一個參數中去比對

select ltrim(‘*++*-**hello‘,‘-+*‘)

--傳回結果為hello

11、        rtrim(x[,trim_string])

從字元串右側去除指定的所有字元串

原理同10、ltrim()

12、        trim(trim_string from x)

原理同10、11

select trim(‘*+‘ from ‘***+*Hello World!***+*‘) from dual;

--傳回結果Hello World!

13、        nvl(x,value)

将一個NULL轉換為另外一個值,如果x為NULL,則傳回value,否則傳回x值本身

select * from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

select id,nvl(name,‘哈哈‘) from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

14、  nvl2(x,value1,value2)

如果x不為NULL,傳回value1,否則,傳回value2

select id,nvl2(name,‘有姓名‘,‘無姓名‘) from SCDLTEST.TEST1207

15、 replace(x,search_string,replace_string)

從字元串x中搜尋search_string字元串,并使用replace_string字元串替換。并不會修改資料庫中原始值

select * from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

select replace(name,‘a‘,‘b‘) from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

16、 substr(x,start[,length])

傳回字元串中的指定的字元,這些字元從字元串的第start個位置開始,長度為length個字元;如果start是負數,則從x字元串的末尾開始算起;如果length省略,則将傳回一直到字元串末尾的所有字元

select * from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

select id,substr(name,1,2) from SCDLTEST.TEST1207

oracle查詢補夠行數,Oracle常用函數

二、 數值函數

1、        abs(value)

傳回value的絕對值

select abs(-10)

--傳回結果為10

2、        ceil(value)

傳回大于等于value的最小整數

select ceil(2.3)

--傳回結果為3

3、        floor(value)

傳回小于等于value的最大整數

與2同理

4、        trunc(value,n)

對value進行截斷,如果n>0,保留n位小數;n<0,則保留-n位整數位;n=0,則去掉小數部分

select trunc(555.666)

--傳回值555,不加第二個參數預設去掉小數

select trunc(555.666,2)

--傳回值555.66,保留小數點右側2位

select trunc(555.666,-2)

--傳回值500,截取小數點左側2位

5、        round(value,n)

對value進行四舍五入,儲存小數點右側的n位。如果n省略的話,相當于n=0的情況

與trunc類似,不過會四舍五入

select round(555.666);

--傳回結果為556,不加n時預設去掉小數部分

select round(555.666,2);

--傳回結果為555.67

select round(555.666,-2);

--傳回結果為600

三、 轉換函數

1、        to_char(x[,format])

将x轉化為字元串。 format為轉換的格式,可以為數字格式或日期格式

select to_char(‘12345.67‘,‘99,999.99‘) from dual;

--傳回結果為12,345.67

注:format gauss100不支援99,999.99格式

2、        to_number(x [,  format])

将x轉換為數字。可以指定format格式

select to_number(‘970.13‘) + 25.5;

--傳回值為995.63

3、        cast(x as type)

将x轉換為指定的相容的資料庫類型

select cast(12345.67 as varchar2(10)),cast(‘2015-7-07‘ as date), cast(12345.678 as number(10,2)) from dual;

傳回結果:

oracle查詢補夠行數,Oracle常用函數

4、        to_date(x [,format])

将x字元串轉換為日期

select to_date(‘2012-3-15‘,‘YYYY-MM-DD‘)

--傳回結果2012-03-15 00:00:00

四、 聚合函數

1、        avg(x):傳回x的平均值

2、        count(x):傳回統計的行數

3、        max(x):傳回x的最大值

4、        min(x):傳回x的最小值

5、        sum(x):傳回x的總計值

原文:https://www.cnblogs.com/zhuyunlong/p/12171701.html