[转载]Oracle SQL内置函数大全(一)
<p>信息来源: <font color="#cc0000">gissky </font></p><p style="TEXT-INDENT: 2em">SQL中的单记录函数 </p><p style="TEXT-INDENT: 2em">1.ASCII </p><p style="TEXT-INDENT: 2em">返回与指定的字符对应的十进制数; </p><p style="TEXT-INDENT: 2em">SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; </p><p style="TEXT-INDENT: 2em">A A ZERO SPACE </p><p style="TEXT-INDENT: 2em">--------- --------- --------- --------- </p><p style="TEXT-INDENT: 2em">65 97 48 32 </p><p style="TEXT-INDENT: 2em">2.CHR </p><p style="TEXT-INDENT: 2em">给出整数,返回对应的字符; </p><p style="TEXT-INDENT: 2em">SQL> select chr(54740) zhao,chr(65) chr65 from dual; </p><p style="TEXT-INDENT: 2em">ZH C </p><p style="TEXT-INDENT: 2em">-- - </p><p style="TEXT-INDENT: 2em">赵 A </p><p style="TEXT-INDENT: 2em">3.CONCAT </p><p style="TEXT-INDENT: 2em">连接两个字符串; </p><p style="TEXT-INDENT: 2em">SQL> select concat('010-','88888888')||'转23' 高乾竞电话 from dual; </p><p style="TEXT-INDENT: 2em">高乾竞电话 </p><p style="TEXT-INDENT: 2em">---------------- </p><p style="TEXT-INDENT: 2em">010-88888888转23 </p><p style="TEXT-INDENT: 2em">4.INITCAP </p><p style="TEXT-INDENT: 2em">返回字符串并将字符串的第一个字母变为大写; </p><p style="TEXT-INDENT: 2em">SQL> select initcap('smith') upp from dual; </p><p style="TEXT-INDENT: 2em">UPP </p><p style="TEXT-INDENT: 2em">----- </p><p style="TEXT-INDENT: 2em">Smith </p><p style="TEXT-INDENT: 2em">5.INSTR(C1,C2,I,J) </p><p style="TEXT-INDENT: 2em">在一个字符串中搜索指定的字符,返回发现指定的字符的位置; </p><p style="TEXT-INDENT: 2em">C1 被搜索的字符串 </p><p style="TEXT-INDENT: 2em">C2 希望搜索的字符串 </p><p style="TEXT-INDENT: 2em">I 搜索的开始位置,默认为1 </p><p style="TEXT-INDENT: 2em">J 出现的位置,默认为1 </p><p style="TEXT-INDENT: 2em">SQL> select instr('oracle traning','ra',1,2) instring from dual; </p><p style="TEXT-INDENT: 2em">INSTRING </p><p style="TEXT-INDENT: 2em">--------- </p><p style="TEXT-INDENT: 2em">9 </p><p style="TEXT-INDENT: 2em">6.LENGTH </p><p style="TEXT-INDENT: 2em">返回字符串的长度; </p><p style="TEXT-INDENT: 2em">SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from .nchar_tst; </p><p style="TEXT-INDENT: 2em">NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) </p><p style="TEXT-INDENT: 2em">------ ------------ ---------------- ------------ --------- -------------------- </p><p style="TEXT-INDENT: 2em">高乾竞 3 北京市海锭区 6 9999.99 7 </p><p style="TEXT-INDENT: 2em">7.LOWER </p><p style="TEXT-INDENT: 2em">返回字符串,并将所有的字符小写 </p><p style="TEXT-INDENT: 2em">SQL> select lower('AaBbCcDd')AaBbCcDd from dual; </p><p style="TEXT-INDENT: 2em">AABBCCDD </p><p style="TEXT-INDENT: 2em">-------- </p><p style="TEXT-INDENT: 2em">aabbccdd </p><p style="TEXT-INDENT: 2em">8.UPPER </p><p style="TEXT-INDENT: 2em">返回字符串,并将所有的字符大写 </p><p style="TEXT-INDENT: 2em">SQL> select upper('AaBbCcDd') upper from dual; </p><p style="TEXT-INDENT: 2em">UPPER </p><p style="TEXT-INDENT: 2em">-------- </p><p style="TEXT-INDENT: 2em">AABBCCDD </p><p style="TEXT-INDENT: 2em">9.RPAD和LPAD(粘贴字符) </p><p style="TEXT-INDENT: 2em">RPAD 在列的右边粘贴字符 </p><p style="TEXT-INDENT: 2em">LPAD 在列的左边粘贴字符 </p><p style="TEXT-INDENT: 2em">SQL> select lpad(rpad('gao',10,'*'),17,'*')from dual; </p><p style="TEXT-INDENT: 2em">LPAD(RPAD('GAO',1 </p><p style="TEXT-INDENT: 2em">----------------- </p><p style="TEXT-INDENT: 2em">*******gao******* </p><p style="TEXT-INDENT: 2em">不够字符则用*来填满 </p><p style="TEXT-INDENT: 2em">10.LTRIM和RTRIM </p><p style="TEXT-INDENT: 2em">LTRIM 删除左边出现的字符串 </p><p style="TEXT-INDENT: 2em">RTRIM 删除右边出现的字符串 </p><p style="TEXT-INDENT: 2em">SQL> select ltrim(rtrim(' gao qian jing ',' '),' ') from dual; </p><p style="TEXT-INDENT: 2em">LTRIM(RTRIM(' </p><p style="TEXT-INDENT: 2em">------------- </p><p style="TEXT-INDENT: 2em">gao qian jing </p><p style="TEXT-INDENT: 2em">11.SUBSTR(string,start,count) </p><p style="TEXT-INDENT: 2em">取子字符串,从start开始,取count个 </p><p style="TEXT-INDENT: 2em">SQL> select substr('13088888888',3,8) from dual; </p><p style="TEXT-INDENT: 2em">SUBSTR(' </p><p style="TEXT-INDENT: 2em">-------- </p><p style="TEXT-INDENT: 2em">08888888 </p><p style="TEXT-INDENT: 2em">12.REPLACE('string','s1','s2') </p><p style="TEXT-INDENT: 2em">string 希望被替换的字符或变量 </p><p style="TEXT-INDENT: 2em">s1 被替换的字符串 </p><p style="TEXT-INDENT: 2em">s2 要替换的字符串 </p><p style="TEXT-INDENT: 2em">SQL> select replace('he love you','he','i') from dual; </p><p style="TEXT-INDENT: 2em">REPLACE('HELOVEYOU','HE','I') </p><p style="TEXT-INDENT: 2em">------------------------------ </p><p style="TEXT-INDENT: 2em">i love you </p><p style="TEXT-INDENT: 2em">13.SOUNDEX </p><p style="TEXT-INDENT: 2em">返回一个与给定的字符串读音相同的字符串 </p><p style="TEXT-INDENT: 2em">SQL> create table table1(xm varchar(8)); </p><p style="TEXT-INDENT: 2em">SQL> insert into table1 values('weather'); </p><p style="TEXT-INDENT: 2em">SQL> insert into table1 values('wether'); </p><p style="TEXT-INDENT: 2em">SQL> insert into table1 values('gao'); </p><p style="TEXT-INDENT: 2em">SQL> select xm from table1 where soundex(xm)=soundex('weather'); </p><p style="TEXT-INDENT: 2em">XM </p><p style="TEXT-INDENT: 2em">-------- </p><p style="TEXT-INDENT: 2em">weather </p><p style="TEXT-INDENT: 2em">wether </p><p style="TEXT-INDENT: 2em">14.TRIM('s' from 'string') </p><p style="TEXT-INDENT: 2em">LEADING 剪掉前面的字符 </p><p style="TEXT-INDENT: 2em">TRAILING 剪掉后面的字符 </p><p style="TEXT-INDENT: 2em">如果不指定,默认为空格符 </p><p style="TEXT-INDENT: 2em">15.ABS </p><p style="TEXT-INDENT: 2em">返回指定值的绝对值 </p><p style="TEXT-INDENT: 2em">SQL> select abs(100),abs(-100) from dual; </p><p style="TEXT-INDENT: 2em">ABS(100) ABS(-100) </p><p style="TEXT-INDENT: 2em">--------- --------- </p><p style="TEXT-INDENT: 2em">100 100 </p><p style="TEXT-INDENT: 2em">16.ACOS </p><p style="TEXT-INDENT: 2em">给出反余弦的值 </p><p style="TEXT-INDENT: 2em">SQL> select acos(-1) from dual; </p><p style="TEXT-INDENT: 2em">ACOS(-1) </p><p style="TEXT-INDENT: 2em">--------- </p><p style="TEXT-INDENT: 2em">3.1415927 </p><p style="TEXT-INDENT: 2em">17.ASIN </p><p style="TEXT-INDENT: 2em">给出反正弦的值 </p><p style="TEXT-INDENT: 2em">SQL> select asin(0.5) from dual; </p><p style="TEXT-INDENT: 2em">ASIN(0.5) </p><p style="TEXT-INDENT: 2em">--------- </p><p style="TEXT-INDENT: 2em">.52359878 </p><p style="TEXT-INDENT: 2em">18.ATAN </p><p style="TEXT-INDENT: 2em">返回一个数字的反正切值 </p><p style="TEXT-INDENT: 2em">SQL> select atan(1) from dual; </p><p style="TEXT-INDENT: 2em">ATAN(1) </p><p style="TEXT-INDENT: 2em">--------- </p><p style="TEXT-INDENT: 2em">.78539816 </p><p style="TEXT-INDENT: 2em">19.CEIL </p><p style="TEXT-INDENT: 2em">返回大于或等于给出数字的最小整数 </p><p style="TEXT-INDENT: 2em">SQL> select ceil(3.1415927) from dual; </p><p style="TEXT-INDENT: 2em">CEIL(3.1415927) </p><p style="TEXT-INDENT: 2em">--------------- </p><p style="TEXT-INDENT: 2em">4 </p><p style="TEXT-INDENT: 2em">20.COS </p><p style="TEXT-INDENT: 2em">返回一个给定数字的余弦 </p><p style="TEXT-INDENT: 2em">SQL> select cos(-3.1415927) from dual; </p><p style="TEXT-INDENT: 2em">COS(-3.1415927) </p><p style="TEXT-INDENT: 2em">--------------- </p><p style="TEXT-INDENT: 2em">-1 </p><p style="TEXT-INDENT: 2em">21.COSH </p><p style="TEXT-INDENT: 2em">返回一个数字反余弦值 </p><p style="TEXT-INDENT: 2em">SQL> select cosh(20) from dual; </p><p style="TEXT-INDENT: 2em">COSH(20) </p><p style="TEXT-INDENT: 2em">--------- </p><p style="TEXT-INDENT: 2em">242582598 </p><p style="TEXT-INDENT: 2em">22.EXP </p><p style="TEXT-INDENT: 2em">返回一个数字e的n次方根 </p><p style="TEXT-INDENT: 2em">SQL> select exp(2),exp(1) from dual; </p><p style="TEXT-INDENT: 2em">EXP(2) EXP(1) </p><p style="TEXT-INDENT: 2em">--------- --------- </p><p style="TEXT-INDENT: 2em">7.3890561 2.7182818 </p><p style="TEXT-INDENT: 2em">23.FLOOR </p><p style="TEXT-INDENT: 2em">对给定的数字取整数 </p><p style="TEXT-INDENT: 2em">SQL> select floor(2345.67) from dual; </p><p style="TEXT-INDENT: 2em">FLOOR(2345.67) </p><p style="TEXT-INDENT: 2em">-------------- </p><p style="TEXT-INDENT: 2em">2345 </p><p style="TEXT-INDENT: 2em">24.LN </p><p style="TEXT-INDENT: 2em">返回一个数字的对数值 </p><p style="TEXT-INDENT: 2em">SQL> select ln(1),ln(2),ln(2.7182818) from dual; </p><p style="TEXT-INDENT: 2em">LN(1) LN(2) LN(2.7182818) </p><p style="TEXT-INDENT: 2em">--------- --------- ------------- </p><p style="TEXT-INDENT: 2em">0 .69314718 .99999999 </p><p style="TEXT-INDENT: 2em">25.LOG(n1,n2) </p><p style="TEXT-INDENT: 2em">返回一个以n1为底n2的对数 </p><p style="TEXT-INDENT: 2em">SQL> select log(2,1),log(2,4) from dual; </p><p style="TEXT-INDENT: 2em">LOG(2,1) LOG(2,4) </p><p style="TEXT-INDENT: 2em">--------- --------- </p><p style="TEXT-INDENT: 2em">0 2 </p><p style="TEXT-INDENT: 2em">26.MOD(n1,n2) </p><p style="TEXT-INDENT: 2em">返回一个n1除以n2的余数 </p><p style="TEXT-INDENT: 2em">SQL> select mod(10,3),mod(3,3),mod(2,3) from dual; </p><p style="TEXT-INDENT: 2em">MOD(10,3) MOD(3,3) MOD(2,3) </p><p style="TEXT-INDENT: 2em">--------- --------- --------- </p><p style="TEXT-INDENT: 2em">1 0 2 </p><p style="TEXT-INDENT: 2em">27.POWER </p><p style="TEXT-INDENT: 2em">返回n1的n2次方根 </p><p style="TEXT-INDENT: 2em">SQL> select power(2,10),power(3,3) from dual; </p><p style="TEXT-INDENT: 2em">POWER(2,10) POWER(3,3) </p><p style="TEXT-INDENT: 2em">----------- ---------- </p><p style="TEXT-INDENT: 2em">1024 27 </p><p style="TEXT-INDENT: 2em">28.ROUND和TRUNC </p><p style="TEXT-INDENT: 2em">按照指定的精度进行舍入 </p><p style="TEXT-INDENT: 2em">SQL> select round(55.5),round(-55.4),trunc(55.5),trunc(-55.5) from dual; </p><p style="TEXT-INDENT: 2em">ROUND(55.5) ROUND(-55.4) TRUNC(55.5) TRUNC(-55.5) </p><p style="TEXT-INDENT: 2em">----------- ------------ ----------- ------------ </p><p style="TEXT-INDENT: 2em">56 -55 55 -55 </p><p style="TEXT-INDENT: 2em">29.SIGN </p><p style="TEXT-INDENT: 2em">取数字n的符号,大于0返回1,小于0返回-1,等于0返回0 </p><p style="TEXT-INDENT: 2em">SQL> select sign(123),sign(-100),sign(0) from dual; </p><p style="TEXT-INDENT: 2em">SIGN(123) SIGN(-100) SIGN(0) </p><p style="TEXT-INDENT: 2em">--------- ---------- --------- </p><p style="TEXT-INDENT: 2em">1 -1 0 </p><p style="TEXT-INDENT: 2em">30.SIN </p><p style="TEXT-INDENT: 2em">返回一个数字的正弦值 </p><p style="TEXT-INDENT: 2em">SQL> select sin(1.57079) from dual; </p><p style="TEXT-INDENT: 2em">SIN(1.57079) </p><p style="TEXT-INDENT: 2em">------------ </p><p style="TEXT-INDENT: 2em">1 </p>页:
[1]
