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') name, length('烟台') 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', 3, 5) aaa from dual; --34567
select substr('1234567890', 0, length('1234567890')-1) from dual; --123456789
select substr('1234567890', 1, length('1234567890')-1) from 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(-100) from dual; --100 100
-- ceil(n)
返回大于等于数字n的最小整数,若输入NULL,则返回为NULL
select ceil(3.1415927) from dual; --4
-- floor(n)
返回小于等于数字n的最大整数,若输入NULL,则返回NULL
select floor(2345.67) from dual; --2345
-- sign(n) 用于检测数字的正负
若n<0; 则返回-1;
若n=0; 则返回0;
若n>0; 则返回1;
若输入值为NULL,则返回NULL
select sign(123), sign(-100), sign(0) from dual; -- 1 -1 0