oracle-常用函数
dual表可以用了查询很多。
1.ascii(str)//返回与指定的字符对应的十进制数;
select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
2.chr(int)//给出整数,返回对应的字符;
select chr(54740) zhao,chr(65) chr65 from dual;
3.concat(s1,s2)连接两个字符串;
select concat('010-','88888888')||'转23' 电话别名 from dual;
4.initcap(str)返回字符串并将字符串的第一个字母变为大写;
select initcap('smith') upp from dual;
5.instr(str,sub_str,start_index,frequency)
select instr('oracle traning','ra',1,2) instring from dual;
6.length(str)返回字符串的长度;
7.lower(str)返回字符串,并将所有的字符小写
8.upper(str)返回字符串,并将所有的字符大写
9.rpad(右填充字符)和lpad(左填充字符)
select lpad(rpad('gao',5,'*'),8,'*')from dual;
结果:***gao**
gao**//5个字符;***gao**//8个字符
10.ltrim(str),rtrim(str),trim(str)
11.substr(string,start,count)取子字符串,从start开始,取count个
select substr('13088888888',3,8) from dual;
12.replace('string','s1','s2')
string 希望被替换的字符或变量
s1 被替换的字符串
s2 要替换的字符串
select replace('he love you','he','i') from dual;
13.abs()绝对值
mod,acos(),sign()符号函数,avg(),协方差(),等一系列数学函数。
14.四舍五入
cell()返回大于或等于给出数字的最小整数
select ceil(3.1415927) from dual;
floor()对给定的数字取整数
select floor(2345.67) from dual;
ROUND和TRUNC
round()//往上靠
trunc()//向0靠//截取
按照指定的精度进行舍入
SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual;
ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5)
----------- ------------ ----------- ------------
56 -55 55 -55
15.日期<-->字符串
add_months()增加或减去月份
select to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm') from dual;
to_char()
to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm') from dual;
to_date()--补充
select last_day(sysdate) from dual;
给出date2-date1的月份
select months_between('19-12月-1999','19-3月-1999') mon_between from dual;
select next_day('18-5月-2001','星期五') next_day from dual;
sysdate用来得到系统的当前日期
select to_char(sysdate,'dd-mm-yyyy day') from dual;
16.convert(c,dset,sset)将源字符串 sset从一个语言字符集转换到另一个目的dset字符集
select convert('strutz','we8hp','f7dec') "conversion" from dual;
以及各种进制之间的转换
17.to_number(str)将给出的字符转换为数字
select to_number('1999') year from dual;
18.bfilename(dir,file)指定一个外部二进制文件
insert into file_tb1 values(bfilename('lob_dir1','image1.gif'));
19.uid返回标识当前用户的唯一整数
SQL> show user
USER 为"GAO"
select username,user_id from dba_users where user_id=uid;
20.user返回当前用户的名字
select user from dual;
21.userenv(opt)返回当前用户环境的信息,opt可以是:
ENTRYID,SESSIONID,TERMINAL,ISDBA,LABLE,LANGUAGE,CLIENT_INFO,LANG,VSIZE等
返回当前INSTANCE的标志
select userenv('instance') from dual;
select userenv('language') from dual;
select userenv('terminal') from dual;