用户操作
[即时聊天] [发私信] [加为好友]
徐翔轩ID:elevenXL
68656次访问,排名1589,好友73人,关注者65人。
岁月静好,现世安稳
elevenXL的文章
原创 128 篇
翻译 2 篇
转载 201 篇
评论 99 篇
徐翔轩的公告
最近评论
Vanessa219:有吗?我留言都很正常啊。。。哈哈,那就是你RP问题了。。。
meteorlWJ:莫有钱啦,呜呜呜
asd:绗缝机
婚庆  
北京搬家
北京……
coder2010:现在是秋天???..............
chen_jia:现在是深秋~
文章分类
收藏
    相册
    Eleven
    QQ头像
    大学生活
    IT Web
    CIU中国软考联盟
    csdn.net
    Hibernate官方网站
    IT考试网站
    JAVA资源网
    MySQL官方网站
    Ubuntu中文官方网
    Ubuntu官方网站
    中关村在线
    多特软件站
    希赛网
    绿色软件联盟
    常上的论坛
    istarsky 星空在线论坛
    伊甸园外剧论坛
    郓城一中校友论坛
    银杏叶论坛
    朋友的BLOG
    88250的BLOG
    herian的Blog
    meteorlWJ的Blog
    小静子
    水中月的空间
    深蓝泡泡鱼的Blog
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 ORACLE SQL 常用函数总结收藏

    新一篇: 多组织,法人实体(legal entity)、业务实体(OU) | 旧一篇: Oracle中Decode()函数使用技巧

    1Substr(arg1,arg2,arg3)

    说明:arg1是待分割的字符串,arg2arg3分别是起始分割字符号

         其中arg3可选

    例:substr(12345, 1,4) 结果为 1234

    补充:两个参数,即arg3为空的用法在SQL SERVER中不适用

     

    2Instr(arg1,arg2,arg3,arg4)

       说明:arg1为待搜索内容,arg2为搜索内容,arg3为搜索起始位置,arg4为搜索匹配位置,即第几次匹配(arg4默认为1)

       例:Instr('CORPORATE FLOOR','OR', 3, 2) 结果为 14

     

    3Concat(arg1,arg2)

       说明:将arg1arg2连接起来,类似于使用||符号进行连接

       例:Concat(1,2) 结果为 12

     

    4Trim(arg)

       说明:默认为去掉arg中的前后空格

       例:Trim(‘ 12345 ‘) 结果为 12345 等同于使用 Trim(‘ ’ from ‘ 12345 )

       补充:Trim又可以细分为LTrimRTrim,分别为去掉左、右空格。

       其他用法:Trim(arg1 from arg2)表示 arg2arg1字符开头或结束,则将所有连续的arg1字符去掉,例如 Trim(‘s’ from ‘stuff’) 结果为tuffTrim(‘f’ from ‘stuff’)结果为 stu

    为使意义更清晰,有时还会添加leadingtrailing来区分arg2的匹配位置,例如 Trim(‘t’ from ‘test’) 结果为 es

         Trim(leading ‘t’ from ‘test’) 结果为 est

         Trim(trailing ‘t’ from ‘test’) 结果为 tes

     

    5Length(arg)

       说明:计算arg的长度

       例:Length(12345) 结果为 5

     

    6Ascii(arg)

       说明:返回与指定字符对应的十进制数

       例:Ascii(‘A’) 结果为 65

     

    7Chr(arg)

       说明:返回与指定整数对应的字符

       例:Chr(65) 结果为 A

     

    8Lower(arg)

       说明:将arg全部变为小写

       例:Lower(‘TesT’) 结果为 test

     

    9Upper(arg)

       说明:将arg全部变为大写

       例:Upper(‘TesT’) 结果为 TEST

     

    10Initcap(arg)

    说明:将arg的首字母变为大写

    例:Initcap(‘test’) 结果为 Test

     

    11LPad(arg1,arg2,arg3) & RPad(arg1,arg2,arg3);

        说明:LPadRPad分别为在arg1左、右粘贴字符,arg2表示字符串总占据长度,arg3表示的是如果arg1不能占据所有长度,则使用什么进行粘贴。

        例:LPad(‘abc’,5,’*’) 结果为 **abc   RPad(‘abc’,5,’*’) 结果为 abc**

        补充:若arg1的长度大于arg2规定长度,则将arg1按照arg2的长度从第一个字符进行截取,此时arg3将不影响结果,例:LPad(‘abcdefg’,5,’*’) 结果为 abcde

     

    12Replace(arg1,arg2,arg3)

        说明:arg1表示待处理的字符串

              arg2表示待替换的字符

              arg3表示要替换成为的字符

        例:Replace('string test','t','*') 结果为s*ring*es*

     

    13ABS(arg)

    说明:返回arg的绝对值

    例:ABS(-100) 结果为 100

        ABS(100) 结果为  100

     

    14Ceil(arg)

    说明:返回大于或等于arg数字的最小整数

    例:Ceil(3.14) 结果为 4

     

    15Floor(arg)

    说明:返回arg数字的整数部分(取整)

    例:Floor(3.14) 结果为 3

     

    16Sin(arg)

    说明:返回arg数字的正弦值

    例:Sin(1.5) 结果为 0.997494986604054

     

    17ASin(arg)

    说明:返回反正弦的值

    例:ASin(0.5) 结果为 0.523598775598299

     

    18Cos(arg)

    说明:返回arg数字的余弦值

    例:Cos(-3.1415927) 结果为 -0.999999999999999

     

    19ACos(arg)

    说明:返回反余弦的值

    例:ACos(-1) 结果为 3.14159265358979

     

    20Tan(arg)

    说明:返回arg数字的正切值

    例:Tan(20) 结果为 2.23716094422474

     

    21ATan(arg)

    说明:返回arg数字的反正切值

    例:ATan(1) 结果为 0.785398163397448

     

    22Exp(arg)

    说明:返回earg次方根

    例:Exp(2) 结果为 7.38905609893065

     

    23Ln(arg)

    说明:返回arg的对数

    例:Ln(1) 结果为 0

     

    24Log(arg1,arg2)

    说明:返回以arg1为底arg2的对数

    例:Log(2,4) 结果为 2

     

    25Mod(arg1,arg2)

    说明:返回arg1除以arg2的余数

    例:Mod(3,2) 结果为 1

     

    26Power(arg1,arg2)

    说明:返回arg1arg2次方

    例:Power(2,3) 结果为 8

     

    27Sign(arg)

    说明:取arg的符号,若arg>0,返回1

                        arg=0,返回0

                        arg<0,返回-1

    例:Sign(2), Sign(0), Sign(-2) 结果分别为 10-1

     

    28Sinh(arg)

                说明:返回双曲线的正弦值

                例:Sinh(20) 结果为 242582597.704895

     

    29Cosh(arg)

               说明:返回双曲线的余弦值

                例:Cosh(20) 结果为 242582597.704895

     

    30Sqrt(arg)

                说明:返回数字arg的平方根

                例:sqrt(64) 结果为 8

     

    31Tanh(arg)

                说明:返回双曲线的正切值

                例:Tanh(20) 结果为 1

     

    32Sysdate

                说明:取系统当前时间

                例:SELECT SYSDATE FROM DUAL;

     

    33Greatest

                说明:取一组数中的最大值,比较字符的编码大小

           例:Greatest('A','C','B') 结果为C

     

    34Least

           说明:取一组数中的最小值,比较字符的编码大小

           例:Least('A','C','B') 结果为A

     

    35To_Number

           说明:将字符串转换为数字

           例:To_Number(‘12345’) 结果为 12345

           补充:这里的字符串必须由数字组成,否则不能转化

     

    36Last_Day(Sysdate)

           说明:返回该月的最后一天的当前时刻

           例:Last_Day(Sysdate) 结果为 2008-10-31 15:28:20

     

    37To_Char(date,’format’)

           说明:将时间转换为指定格式

           例:To_Char(Sysdate, ‘yyyy/mm/dd hh24:mi:ss’) 结果为 2008/10/07 15:34:13

     

    38To_Date(string,’format’)

           说明:将string根据给定的时间匹配方式转换成为时间类型

           例:To_Date('20081007153413','yyyymmddhh24miss') 结果为 2008-10-7 15:34:13

     

    39Next_Day(date,’dayofweek’)

           说明:计算下个星期相同日的日期

           例:Next_Day(’07-10-2008’,’星期二’) 结果为 2008-10-14

     

    40Add_Months(date,month)

           说明:给指定日期加上指定月份

           例:To_Char(Add_Months(To_Date('2008,10,07 15:52:00',

                                      'yyyy,mm,dd hh24:mi:ss'),

                              1),

                   'yyyy,mm,dd hh24:mi:ss') 结果为 2008,11,07 15:52:00

     

    41Months_Between(date2,date1)

           说明:返回date2-date1的月份

           例:Months_Between(Add_Months(Sysdate,1),Add_Months(Sysdate,-1)) 结果为 2

     

    42New_Time(date,this,that)

           说明:返回this时区=that时区的日期和时间

           例:SELECT To_Char(Sysdate, 'yyyy.mm.dd hh24:mi:ss') bj_time,

    To_Char(New_Time(Sysdate, 'PDT', 'GMT'), 'yyyy.mm.dd hh24:mi:ss') los_angles

              FROM DUAL; 结果为 2008.10.07 16:01:46  2008.10.07 23:01:46

     

    43RowIdToChar(rowid)

           说明:将rowid转换成字符

           例:RowIdToChar('AAAAfKAACAAAAEqAAA') 结果为 AAAAfKAACAAAAEqAAA

     

    44CharToRowId(char)

           说明:将字符转换成rowid

           例:CharToRowId(‘AAAAfKAACAAAAEqAAA’) 结果为 AAAAfKAACAAAAEqAAA

     

    45Convert(c,dset,sset)

           说明:将原字符串c由原字符集sset转到目标字符集dset

           例:Convert('Eleven.Xu ','we8hp','f7dec') 结果为 Eleven.Xu e>

     

    46HexToRaw(arg)

           说明:将arg16进制转换成为raw类型数据

           例:HexToRaw(‘123’) 结果为 0123

     

    47RawToHex(arg)

           说明:将argraw类型数据转成为16进制数据

           例:RawToHex(‘0123’) 结果为 30313233

     

    48To_Multi_Byte(arg)

           说明:将arg从单字节字符转换成为多字节字符

           例:To_Multi_Byte(‘hello’) 结果为hello

     

    49User

           说明:返回当前用户用户名

           例:SELECT User FROM DUAL 结果为 APPS

     

    50UID

           说明:用户的唯一标识

           例:SELECT du.username, du.user_id

                  FROM dba_users du

                  WHERE du.username = (SELECT User FROM DUAL);

     

    51Soundex

           说明:返回一个与给定字符串相同读音的字符串

           例:略

     

    52Userenv(arg)

           说明:若arg‘isdba’,表示判断当前用户是否为DBA

                    arg‘sessionid’,表示判断当前sessionid

    arg‘entryid’,表示会话人口id

    arg‘instance’,表示当前instance标志

    arg‘language’,表示当前环境语言

    arg‘lang’,表示当前环境语言缩写

    arg‘terminal’,表示当前终端或机器的标志

    例:Userenv('isdba') 结果为 FALSE

        Userenv('sessionid') 结果为 1416799

                  Userenv('entryid') 结果为 0

                  Userenv('instance') 结果为 1

                  Userenv('language') 结果为 SIMPLIFIED CHINESE_CHINA.UTF8

                  Userenv('lang') 结果为 ZHS

                  Userenv('terminal') 结果为 HAND-ELEVEN

     

    53VSize(arg)

           说明:返回arg的字节数

           例:VSize(‘1234’) 结果为 4

     

    54Decode(value,if1,then1,if2,then2,if3,then3,...,else)

    说明:如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else

    例:SELECT Decode(Sign(10-11),-1,10,11) FROM DUAL;(取最较小值) 结果为 10

    补充:详细解释请参考http://blog.csdn.net/elevenXL/archive/2008/10/08/3031647.aspx

     

    55Truncarg1,arg2

           说明:根据arg2规定的精度截取arg1

           例:SELECT Trunc(111.112233,2) FROM DUAL;   结果为 111.11

    SELECT Trunc(111.112233,-2) FROM DUAL;  结果为 100 

     

    56Round(arg1,arg2)

           说明:根据arg2规定的精度对arg1按四舍五入进行截取

           例:SELECT Round(111.41,1) FROM DUAL;  结果为 111.4

    SELECT Round(111.45,1) FROM DUAL;  结果为 111.5

     

    57BFileName(dir,fullfilename)

           说明:指定外部dir目录下的fullfilename文件,在Insert语句中使用较多

           例:略

     

     

     

    附(ORACLE SQL 常用函数总结 SQL样例):

    --Oracle SQL 内置函数总结 SQL示例

    --Oct.7, 2008  Eleven.Xu Hand,Shanghai

     

    --1. Substr

    SELECT Substr('12345', 1,4) FROM DUAL;

      --Result:1234

     

    --2. Instr

    SELECT Instr('CORPORATE FLOOR','OR', 3, 2) FROM DUAL; 

      --Result:14

     

    --3. Concat

    SELECT Concat(1,2) FROM DUAL; 

      --Result:12

     

    --4. Trim

    SELECT Trim(' 12345 ') FROM DUAL;   --Result:12345

    SELECT LTrim(' 12345 ') FROM DUAL;  --Result:12345

    SELECT RTrim(' 12345 ') FROM DUAL;  --Result: 12345

     

    SELECT Trim('f' from 'stuff') FROM DUAL;  --Result:stu

    SELECT Trim('s' from 'stuff') FROM DUAL;  --Result:tuff

     

    SELECT Trim('t' from 'test') FROM DUAL;           --Result:es

    SELECT Trim(Leading 't' from