现在的位置: 首页 > 综合 > 正文

Oracle常用内置函数介绍及用法(一)

2014年05月30日 ⁄ 综合 ⁄ 共 3384字 ⁄ 字号 评论关闭

lower(str):将字符串转化为小写;

upper(str):将字符串转化为大写;

initcap(str):将字符串首字母转化为大写;

select lower('AaBb'as aaa, upper('AaBb'as AAA, initcap('AaBb'as Aaa from dual;



length(str):返回字符串的长度

lengthb(str):返回字符串的长度(按照字节)

select  length('Mart'namelength('烟台') addr, lengthb('烟台') addrb from dual;



lpad rpad

lpad(char1,n,char2):

在字符串char1的左端填充字符串char2,直至字符串总长度为n,

char2的默认值为空格,如果char1长度大于n,则该函数返回char1左端的前n个字符。

如果输入参数值存在NULL,则返回NULL

select lpad(rpad('gao'10'$'), 17'#'from dual; --#######gao$$$$$$$

select lpad(rpad('gao'10'$'), 15'#'from dual; --#####gao$$$$$$$

select lpad(rpad('gao'10'$'), 10'#'from dual; --gao$$$$$$$

select lpad(rpad('gao'10'$'), 8'#'from dual; --gao$$$$$

select lpad(rpad('gao'5'$'), 17'#'from dual; --############gao$$

select lpad(rpad('gao'2'$'), 17'#'from dual; --###############ga



-- trim ltrim rtrim

select rtrim('  abce  ')ltrim('  abce  ')trim('  abce  'from dual;

select trim('s' from 'string')trim('g' from 'string')trim('r' from 'string'from dual; --tring

select trim (both from ' DWEYE ') "TRIM e.g." from dual;

select trim (trailing from ' DWEYE ') "TRIM e.g." from dual; --  DWEYE

select trim (leading from ' DWEYE ') "TRIM e.g." from dual; --DWEYE  

select trim ('x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual; --DWEYE

select trim (both 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual; --DWEYE

select trim (trailing 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual; --xxxxDWEYE

select trim (leading 'x' from 'xxxxDWEYExxxx') "TRIM e.g." from dual; --DWEYExxxx

-- 'both' 参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)

-- 'trailing' 参数表示去除字符串后所指定的内容(默认情况下删除空格)

-- 'leading' 参数表示去除字符串前所指定的内容(默认情况下删除空格)

-- 注意:

trim 删除指定字符的功能中,参数只允许包含一个字符,不支持多字符。可用ltrim rtrim 来实现相应的功能

select ltrim(rtrim('   Mart Li   '' '), ' 'from dual; --Mart Li

select ltrim(rtrim('xxxMart Lizzz''z'), 'x'from dual; --Mart Li

select rtrim('xyxxDWEYExyyx','xy') "e.g." from dual; --xyxxDWEYE

select ltrim('xyxxDWEYExyyx','xy') "e.g." from dual; --DWEYExyyx

-- 使用RTRIM和LTRIM函数时的注意事项:

-- “xy”不表示整个“xy”字符串进行匹配,而是发现任意的字符“x”或字符“y”均做删除操作



-- substr(src,start,length) 截取字符串,下标从1开始

select substr('1234567890'35) aaa from dual; --34567

select substr('1234567890'0length('1234567890')-1from dual; --123456789

select substr('1234567890'1length('1234567890')-1from dual; --123456789



-- replace('String','oldstr','newstr') 字符串替换

String   用于指定字符串 

oldstr   用于指定要被替换的子串

newstr   用于指定替换后的子串

如果 oldstr 为 NULL,则返回原有字符串,如果 newstr 为 NULL,则会去掉指定子串。



-- count(column_name)  统计一个表中 column_name 列的数量

select count(column_name) from authors;

-- 如果相同的 column_name 出现了不止一次,则会被计算多次。

可以通过关键字 distinct 得到不同 column_name 的数目:

select count(distinct column_name) from authors

-- 如果相同的column出现了不止一次,它将只被计算一次。

count(column_name),如果某一行的 column_name 是null,那么这一行将不计算,所以count(column_name)是计算所有值不为NULL的数据。

即count(column_name) 就只会统计非空行. 

count(*) 和count('x'),count('y'),count(1),count(2) 这3个都代表所有行,因为每行数据都不为null

补充,在表的主键不同情况下,count(*)和count(数字)的执行效率是不同的:

count(字段)时,如果字段为主键,则效率最高,count(1)次之,count(*)最慢;

如果字段不为主键,则count(1)最快,count(*)次之,count(字段)最慢;



-- abs(n)

用于返回数字n的绝对值,如果输入为NULL,则返回值也是NULL

select abs(100), abs(-100from dual; --100 100

-- ceil(n) 

返回大于等于数字n的最小整数,若输入NULL,则返回为NULL

select ceil(3.1415927from dual; --4

-- floor(n)

返回小于等于数字n的最大整数,若输入NULL,则返回NULL

select floor(2345.67from dual; --2345


-- sign(n) 用于检测数字的正负

  若n<0; 则返回-1;

  若n=0; 则返回0;

  若n>0; 则返回1;

  若输入值为NULL,则返回NULL

select sign(123), sign(-100), sign(0from dual; -- 1 -1 0


抱歉!评论已关闭.