zoukankan      html  css  js  c++  java
  • Oracle 下常用函数的用法

    //将字段最后两个字符去掉

    select substr(t.modality,1,length(t.modality)-2),t.psi from order_list t where t.pl='LSS' or t.pl='PCS'

    //在字段后面添加后缀字符

    update product_type t  set t.code=CONCAT(t.code,'-1'),t.name=CONCAT(t.name,'-1') where t.pcode='LSS'

    substr用法

    Oracle中的截取字符串函数。

      语法如下:

      substr( string, start_position, [ length ] )

      参数分析:

      string

      字符串值

      start_position(0和1都是表示截取的开始位置为第一个字符

      截取字符串的初始位置, Number型,start_position为负数时,表示从字符串右边数起。

      length

      截取位数,Number型

      其中,length为可选,如果length为空(即不填)则返回start_position后面的所有字符。

      意思就是:

      从start_position开始,取出length个字符并返回取出的字符串。

      具体参考示例。

      示例:

      SELECT  substr('This is a test', 6, 2)  FROM test  返回 'is' 

      substr('SyranMo have a dream', -5, 5)  返回 'dream' 

    CONCAT用法:

          CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。

          请注意,Oracle的C O NCAT()只允许两个参数;换言之,一次只能将两个字串串连起来。

          不过,在Oracle中,我们可以用'||'来一次串连多个字串。 

          SELECT CONCAT(region_name,store_name) FROM Geography 
          WHERE store_name = 'Boston'; 
          --'EastBoston'

           SELECT region_name || ' ' || store_name FROM Geography 
           WHERE store_name = 'Boston'; 
          --'East Boston'

     LTRIM用法

      LTRIM删除起始空格后返回字符表达式。

      语法
      LTRIM ( character_expression )

      参数
      character_expression

      是字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 

      必 须是可以隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。

      返回类型
      varchar

     RTRIM用法

     

      RTRIM截断所有尾随空格后返回一个字符串。

      语法
      RTRIM ( character_expression )

      参数
      character_expression

      由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列

       返回类型
       varchar

       注释
       character_expression 必须为可隐性转换为 varchar 的数据类型。否则请使用 CAST 函数显式转换   

        character_expression。

    TO_NUMBER用法

     

    将一个字符串转为数字类型

     

    trunc  的用法

    语法:

    trunc ( date, [ format ] )

    例子:

      --Oracle trunc()函数的用法
    /**************日期********************/
    1.select trunc(sysdate) from dual  --2011-3-18  今天的日期为2011-3-18
    2.select trunc(sysdate, 'mm')   from   dual  --2011-3-1    返回当月第一天.
    3.select trunc(sysdate,'yy') from dual  --2011-1-1       返回当年第一天
    4.select trunc(sysdate,'dd') from dual  --2011-3-18    返回当前年月日
    5.select trunc(sysdate,'yyyy') from dual  --2011-1-1   返回当年第一天
    6.select trunc(sysdate,'d') from dual  --2011-3-13 (星期天)返回当前星期的第一天
    7.select trunc(sysdate, 'hh') from dual   --2011-3-18 14:00:00   当前时间为14:41   
    8.select trunc(sysdate, 'mi') from dual  --2011-3-18 14:41:00   TRUNC()函数没有秒的精确
    /***************数字********************/
    /*
    TRUNC(number,num_digits) 
    Number 需要截尾取整的数字。 
    Num_digits 用于指定取整精度的数字。Num_digits 的默认值为0。
    TRUNC()函数截取时不进行四舍五入
    */
    9.select trunc(123.458) from dual --123
    10.select trunc(123.458,0) from dual --123
    11.select trunc(123.458,1) from dual --123.4
    12.select trunc(123.458,-1) from dual --120
    13.select trunc(123.458,-4) from dual --0
    14.select trunc(123.458,4) from dual  --123.458
    15.select trunc(123) from dual  --123
    16.select trunc(123,1) from dual --123
    17.select trunc(123,-1) from dual --120

    replace 用法


    REPLACE('2012/09/08','/','-')==>2012-09-08

    TRANSLATE 用法

    TRANSLATE ( 'char' , 'from_string' , 'to_string' )

    TRANSLATE返回将from_string中的每个字符替换为to_string中的相应字符以后的string。

    TRANSLATE是REPLACE所提供的功能的一个超集。如果from_string比to_string长,那么在from_string中而不在to_string中的额外字符将从char中被删除,因为它们没有相应的替换字符。to_string不能为空。Oracle将空字符串解释为NULL,并且如果TRANSLATE中的任何参数为NULL,那么结果也是NULL。(TRANSLATE (’please go away’, ‘a’, NULL) ==> NULL)

    举个例子 

    select translate('123abc','2dc','4e') from dual;

    因为from_string和to_string的位置是一一对应的,2对应4,d对应e,c没有对应的值,所以c应该会被删除。

    所以例子的字符里的2会替换为4,

    d因为字符串里没有,所以不作替换,

    c由于没有对应的替换字符,所以字符串里的c会被删除

    那么可以得出,结果是

    143ab

    INITCAP()

      假设c1为一字符串.函数INITCAP()是将每个单词的第一个字母大写,其它字母变为小写返回.

      单词由空格,控制字符,标点符号等非字母符号限制.

      例:select INITCAP('vEni,vedi,viCI') Ceasar from dual

      结果为 Ceasar

       Veni,Vedi,Vici

    rpad函数

    rpad函数从右边对字符串使用指定的字符进行填充   
    rpad(string,padded_length,[pad_string])   
    string 表示:被填充的字符串   
    padded_length 表示:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,rpad函数将会把字符串截取成从左到右的n个字符;   
    pad_string 是个可选参数,这个字符串是要粘贴到string的右边,如果这个参数未写,lpad函数将会在string的右边粘贴空格。   
    例如:   
    rpad('tech', 7); 将返回'tech '   
    rpad('tech', 2); 将返回'te'   
    rpad('tech', 8, '0'); 将返回'tech0000'   
    rpad('tech on the net', 15, 'z'); 将返回 'tech on the net'   
    rpad('tech on the net', 16, 'z'); 将返回 'tech on the netz'

    SQL> select rpad('aa',5)||decode('bbb',null,' ',rpad('bbb',8))||rpad('cccc',12) from dual;
     
    RPAD('AA',5)||DECODE('BBB',NUL
    ------------------------------
    aa   bbb     cccc

    instr函数

    在Oracle/PLSQL中,instr函数返回要截取的字符串在源字符串中的位置。
    语法如下: 
      instr( string1, string2 [, start_position [, nth_appearance ] ] ) 
     
    string1
    源字符串,要在此字符串中查找。
    string2
    要在string1中查找的字符串 。
    start_position
    代表string1 的哪个位置开始查找。此参数可选,如果省略默认为1. 字符串索引从1开始。如果此参数为正,从左到右开始检索,如果此参数为负,从右到左检索,返回要查找的字符串在源字符串中的开始索引。
    nth_appearance
    代表要查找第几次出现的string2. 此参数可选,如果省略,默认为 1.如果为负数系统会报错。
    注意: 
      位置索引号从1开始。
      如果String2在String1中没有找到,instr函数返回0。
      示例: 
      SELECT instr('syranmo','s') FROM dual; -- 返回 1 
      SELECT instr('syranmo','ra') FROM dual; -- 返回 3 
      SELECT instr('syran mo','a',1,2) FROM dual; -- 返回
    0
  • 相关阅读:
    用webclient.DownloadFile下载exe文件时大小为0
    C# ,asp.net 获取当前,相对,绝对路径(转)
    c#读取进程列表判断程序是否已经启动(转)
    如何提升页面渲染效率
    前端知识点总结——VUE
    ie7ajax 跨域 no transport 解决办法
    酷炫网址
    框架学习官网
    JavaScript数组方法大全(推荐)
    rem是如何实现自适应布局的
  • 原文地址:https://www.cnblogs.com/heshan664754022/p/2660229.html
Copyright © 2011-2022 走看看