SQL中的单记录函数

  SQL中的单记录函数  
  1.ASCII  
  返回与指定的字符对应的十进制数;  
  SQL>   select   ascii('A')   A,ascii('a')   a,ascii('0')   zero,ascii('   ')   space   from   dual;  
   
                  A                   A             ZERO           SPACE  
  ---------   ---------   ---------   ---------  
                65                 97                 48                 32  
   
   
  2.CHR  
  给出整数,返回对应的字符;  
  SQL>   select   chr(54740)   zhao,chr(65)   chr65   from   dual;  
   
  ZH   C  
  --   -  
  赵   A  
   
  3.CONCAT  
  连接两个字符串;  
  SQL>   select   concat('010-','88888888')||'转23'     高乾竞电话   from   dual;  
   
  高乾竞电话  
  ----------------  
  010-88888888转23  
   
  4.INITCAP  
  返回字符串并将字符串的第一个字母变为大写;  
  SQL>   select   initcap('smith')   upp   from   dual;  
   
  UPP  
  -----  
  Smith  
   
   
  5.INSTR(C1,C2,I,J)  
  在一个字符串中搜索指定的字符,返回发现指定的字符的位置;  
  C1         被搜索的字符串  
  C2         希望搜索的字符串  
  I           搜索的开始位置,默认为1  
  J           出现的位置,默认为1  
  SQL>   select   instr('oracle   traning','ra',1,2)   instring   from   dual;  
   
    INSTRING  
  ---------  
                  9  
   
   
  6.LENGTH  
  返回字符串的长度;  
  SQL>   select   name,length(name),addr,length(addr),sal,length(to_char(sal))   from   gao.nchar_tst;  
   
  NAME       LENGTH(NAME)   ADDR                           LENGTH(ADDR)               SAL   LENGTH(TO_CHAR(SAL))  
  ------   ------------   ----------------   ------------   ---------   --------------------  
  高乾竞                         3   北京市海锭区                                 6       9999.99                                         7  
   
   
   
  7.LOWER  
  返回字符串,并将所有的字符小写  
  SQL>   select   lower('AaBbCcDd')AaBbCcDd   from   dual;  
   
  AABBCCDD  
  --------  
  aabbccdd  
   
   
  8.UPPER  
  返回字符串,并将所有的字符大写  
  SQL>   select   upper('AaBbCcDd')   upper   from   dual;  
   
  UPPER  
  --------  
  AABBCCDD  
   
   
   
  9.RPAD和LPAD(粘贴字符)  
  RPAD     在列的右边粘贴字符  
  LPAD     在列的左边粘贴字符  
  SQL>   select   lpad(rpad('gao',10,'*'),17,'*')from   dual;  
   
  LPAD(RPAD('GAO',1  
  -----------------  
  *******gao*******  
  不够字符则用*来填满  
   
   
  10.LTRIM和RTRIM  
  LTRIM     删除左边出现的字符串  
  RTRIM     删除右边出现的字符串  
  SQL>   select   ltrim(rtrim('       gao   qian   jing       ','   '),'   ')   from   dual;  
   
  LTRIM(RTRIM('  
  -------------  
  gao   qian   jing  
   
   
  11.SUBSTR(string,start,count)  
  取子字符串,从start开始,取count个  
  SQL>   select   substr('13088888888',3,8)   from   dual;  
   
  SUBSTR('  
  --------  
  08888888  
   
   
  12.REPLACE('string','s1','s2')  
  string       希望被替换的字符或变量    
  s1               被替换的字符串  
  s2               要替换的字符串  
  SQL>   select   replace('he   love   you','he','i')   from   dual;  
   
  REPLACE('H  
  ----------  
  i   love   you  
   
   
  13.SOUNDEX  
  返回一个与给定的字符串读音相同的字符串  
  SQL>   create   table   table1(xm   varchar(8));  
  SQL>   insert   into   table1   values('weather');  
  SQL>   insert   into   table1   values('wether');  
  SQL>   insert   into   table1   values('gao');  
   
  SQL>   select   xm   from   table1   where   soundex(xm)=soundex('weather');  
   
  XM  
  --------  
  weather  
  wether  
   
   
  14.TRIM('s'   from   'string')  
  LEADING       剪掉前面的字符  
  TRAILING     剪掉后面的字符  
  如果不指定,默认为空格符    
   
  15.ABS  
  返回指定值的绝对值  
  SQL>   select   abs(100),abs(-100)   from   dual;  
   
    ABS(100)   ABS(-100)  
  ---------   ---------  
              100               100  
   
   
  16.ACOS  
  给出反余弦的值  
  SQL>   select   acos(-1)   from   dual;  
   
    ACOS(-1)  
  ---------  
  3.1415927  
   
   
  17.ASIN  
  给出反正弦的值  
  SQL>   select   asin(0.5)   from   dual;  
   
  ASIN(0.5)  
  ---------  
  .52359878  
   
   
  18.ATAN  
  返回一个数字的反正切值  
  SQL>   select   atan(1)   from   dual;  
   
      ATAN(1)  
  ---------  
  .78539816  
   
   
  19.CEIL  
  返回大于或等于给出数字的最小整数  
  SQL>   select   ceil(3.1415927)   from   dual;  
   
  CEIL(3.1415927)  
  ---------------  
                              4  
   
   
  20.COS  
  返回一个给定数字的余弦  
  SQL>   select   cos(-3.1415927)   from   dual;  
   
  COS(-3.1415927)  
  ---------------  
                            -1  
   
   
  21.COSH  
  返回一个数字反余弦值  
  SQL>   select   cosh(20)   from   dual;  
   
    COSH(20)  
  ---------  
  242582598  
   
   
  22.EXP  
  返回一个数字e的n次方根  
  SQL>   select   exp(2),exp(1)   from   dual;  
   
        EXP(2)         EXP(1)  
  ---------   ---------  
  7.3890561   2.7182818  
   
   
  23.FLOOR  
  对给定的数字取整数  
  SQL>   select   floor(2345.67)   from   dual;  
   
  FLOOR(2345.67)  
  --------------  
                      2345  
   
   
  24.LN  
  返回一个数字的对数值  
  SQL>   select   ln(1),ln(2),ln(2.7182818)   from   dual;  
   
          LN(1)           LN(2)   LN(2.7182818)  
  ---------   ---------   -------------  
                  0   .69314718           .99999999  
   
   
  25.LOG(n1,n2)  
  返回一个以n1为底n2的对数    
  SQL>   select   log(2,1),log(2,4)   from   dual;  
   
    LOG(2,1)     LOG(2,4)  
  ---------   ---------  
                  0                   2  
   
   
  26.MOD(n1,n2)  
  返回一个n1除以n2的余数  
  SQL>   select   mod(10,3),mod(3,3),mod(2,3)   from   dual;  
   
  MOD(10,3)     MOD(3,3)     MOD(2,3)  
  ---------   ---------   ---------  
                  1                   0                   2  
   
   
  27.POWER  
  返回n1的n2次方根  
  SQL>   select   power(2,10),power(3,3)   from   dual;  
   
  POWER(2,10)   POWER(3,3)  
  -----------   ----------  
                1024                   27  
   
   
  28.ROUND和TRUNC  
  按照指定的精度进行舍入  
  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  
   
   
  29.SIGN  
  取数字n的符号,大于0返回1,小于0返回-1,等于0返回0  
  SQL>   select   sign(123),sign(-100),sign(0)   from   dual;  
   
  SIGN(123)   SIGN(-100)       SIGN(0)  
  ---------   ----------   ---------  
                  1                   -1                   0  
   
   
  30.SIN  
  返回一个数字的正弦值  
  SQL>   select   sin(1.57079)   from   dual;  
   
  SIN(1.57079)  
  ------------  
                        1  
   
   
  31.SIGH  
  返回双曲正弦的值  
  SQL>   select   sin(20),sinh(20)   from   dual;  
   
      SIN(20)     SINH(20)  
  ---------   ---------  
  .91294525   242582598  
   
   
  32.SQRT  
  返回数字n的根  
  SQL>   select   sqrt(64),sqrt(10)   from   dual;  
   
    SQRT(64)     SQRT(10)  
  ---------   ---------  
                  8   3.1622777  
   
   
  33.TAN  
  返回数字的正切值  
  SQL>   select   tan(20),tan(10)   from   dual;  
   
      TAN(20)       TAN(10)  
  ---------   ---------  
  2.2371609   .64836083  
   
   
  34.TANH  
  返回数字n的双曲正切值  
  SQL>   select   tanh(20),tan(20)   from   dual;  
   
    TANH(20)       TAN(20)  
  ---------   ---------  
                  1   2.2371609  
   
   
   
  35.TRUNC  
  按照指定的精度截取一个数  
  SQL>   select   trunc(124.1666,-2)   trunc1,trunc(124.16666,2)   from   dual;  
   
        TRUNC1   TRUNC(124.16666,2)  
  ---------   ------------------  
              100                           124.16  
   
   
   
  36.ADD_MONTHS  
  增加或减去月份  
  SQL>   select   to_char(add_months(to_date('199912','yyyymm'),2),'yyyymm')   from   dual;  
   
  TO_CHA  
  ------  
  200002  
  SQL>   select   to_char(add_months(to_date('199912','yyyymm'),-2),'yyyymm')   from   dual;  
   
  TO_CHA  
  ------  
  199910  
   
   
  37.LAST_DAY  
  返回日期的最后一天  
  SQL>   select   to_char(sysdate,'yyyy.mm.dd'),to_char((sysdate)+1,'yyyy.mm.dd')   from   dual;  
   
  TO_CHAR(SY   TO_CHAR((S  
  ----------   ----------  
  2004.05.09   2004.05.10  
  SQL>   select   last_day(sysdate)   from   dual;  
   
  LAST_DAY(S  
  ----------  
  31-5月   -04  
   
   
  38.MONTHS_BETWEEN(date2,date1)  
  给出date2-date1的月份  
  SQL>   select   months_between('19-12月-1999','19-3月-1999')   mon_between   from   dual;  
   
  MON_BETWEEN  
  -----------  
                      9  
  SQL>select     months_between(to_date('2000.05.20','yyyy.mm.dd'),to_date('2005.05.20','yyyy.mm.dd'))   mon_betw   from   dual;  
   
    MON_BETW  
  ---------  
              -60  
   
   
  39.NEW_TIME(date,'this','that')  
  给出在this时区=other时区的日期和时间  
  SQL>   select   to_char(sysdate,'yyyy.mm.dd   hh24:mi:ss')   bj_time,to_char(new_time  
      2     (sysdate,'PDT','GMT'),'yyyy.mm.dd   hh24:mi:ss')   los_angles   from   dual;  
   
  BJ_TIME                           LOS_ANGLES  
  -------------------   -------------------  
  2004.05.09   11:05:32   2004.05.09   18:05:32  
   
   
  40.NEXT_DAY(date,'day')  
  给出日期date和星期x之后计算下一个星期的日期  
  SQL>   select   next_day('18-5月-2001','星期五')   next_day   from   dual;  
   
  NEXT_DAY  
  ----------  
  25-5月   -01  
原文地址:https://www.cnblogs.com/benzhang/p/1505893.html