/*
distinct 去重
*/
select distinct nvl(e.job,'kong') from emp e;
select e.empno,e.ename from emp e;
/*INITCAP(X):将字母字符转换为每个词首字母为大写,其它字母为小写
*/
select e.empno,INITCAP(E.ENAME) from emp e;
/*INSTR(X,find_string [,start] [,occurence]):
返回指定字符串X中的要找的字符串find_string ,从指定的开始occurence=1出现的位置start,
*/
select e.empno,instr(e.ename,'I',1,1) from emp e where e.empno=7369;
/*length(x):返回表达式x的字符数
*/
select e.empno,e.ename,length(e.ename) from emp e;
/*lower(column):将字母字符值转换为小写,upper(column):将字母字符值转换为大写
*/
select e.ename ,lower(e.ename),upper(e.ename) from emp e;
/*Lpad(x,width [,pad_string]):在字符串x左侧填充pad_string,以使总字符宽度为widt
Rpad()
*/
select e.ename, lpad(e.ename,30,'+*'),rpad(e.ename,30,'-*') from emp e;
/*Ltrim(x [,trim_string]):从字符串左侧去除所有的trim—_string字符串,如果没有指定trim_string字符串,则默认为去除左侧空白字符
Rtrim(x [,trim_string]):从字符串右侧去除所有的trim—_string字符串,如果没有指定trim_string字符串,则默认为去除右侧空白字符
trim(trim_string from x):从字符串两侧去除trim_string字符串
*/
select LTRIM(' Hello Gail Seymour!'),
RTRIM('Hi Doreen Oakley!abcabc', 'abc'),
TRIM('0' FROM trim(' 000Hey Steve Button!00000 ')) from dual;
/*nvl(x,value):用于将一个null值转换为另一个值,如果x是nul值得花返回value值,否则返回x值本身。
nvl2(x,value1,value2):如果x不为null值,返回value1,否则返回value2
*/
select e.empno,nvl(e.job,'为空') from emp e;
select e.empno,e.comm,nvl2(e.comm,300,0) from emp e;
/*replace(x,search_string,replace_string):从字符串x中搜索search_string字符串,并使用replace_string字符串替换,并不会修改数据中原来的值
*/
select e.empno,replace(e.ename,'SMITH','史密斯') as "中文名" from emp e where e.empno=7369;
/*soundex(x):返回代表xzifu 串的语音的表示形式,可用于查找一些语音相同但是拼写不同的单词
*/
select e.empno,e.ename from emp e where soundex(e.ename)=soundex('smith');
/*substr(x,start [,length]):返回字符串中的指定的字符,这些字符的地start个位置开始,长度为length个字符,如果start是负数,则从x字符串的末尾开始算起,如果length省略,则将返回一只到字符串末尾的所有字符
*/
select e.empno,substr(e.ename,2,3) from emp e;
/*abs(value):返回value的绝对值
*/
/*power(value,n):返回value的n次幂
*/
/*mod(m,n):返回m和n取余数的结果
*/
/*to_char(x,[,format]):将x转换为字符串,format为转换的格式,可以为十字格式或日期格式可以
*/
select to_char(1234.67) from dual;
SELECT TO_CHAR(12345.67, '99,999.99') FROM dual;
/*to_number(x [,format]):将x转换为数字,可以指定format格式
*/
SELECT TO_NUMBER('970.13') + 25.5 FROM dual;
SELECT TO_NUMBER('-$12,345.67', '$99,999.99') FROM dual;
/*cast(x as type):将x转换为指定的兼容的数据库类型
*/
SELECT
CAST(12345.67 AS VARCHAR2(10)),
CAST('05-7月-07' AS DATE),
CAST(12345.678 AS NUMBER(10,2))
FROM dual
/*to_date(x [,format]):将x转换为日期
*/
SELECT TO_DATE('2012-3-15','YYYY-MM-DD') FROM dual;