学习oracle的一些知识点记录

1、round(num,a),四舍五入,a代表小数点后多少位,若为负数,则代表小数点左多少位,例:round(1234,-2),结果为1200


2、nvl(a,num) ,若a为空,a=num;nvl2(a,num1,num2),若a!=null,返回num1,若为空,则返回num2


3、trunc(a,num),用于数字截断,这里num指小数点后num位,若为负数则指小数点右num位,substr(a,num1,num2)用于字符截断,截取num1~num2的位置。


4、nullf(a,b),若a=b,返回null,不等返回a


5、coalesce(exp1,exp2,exp3....),依次找到不为空的的值返回


6、trim函数的补充

    trim一般都是用在删除字符串两边的空格。实际上,trim也可以用来删除字符串两边的指定字符。并且trim指定删除的字符串只能是单个字符。如 trim('        字符1' from '字符串2') ,字符1只能是单个字符。
    a.trim()删除字符串两边的空格。
    b.ltrim()删除字符串左边的空格。
    c. rtrim()删除字符串右边的空格。
    d. trim('字符1' from '字符串2')  分别从字符2串的两边开始,删除指定的字符1。
    e. trim([leading | trailing | both] trim_char from string) 从字符串String中删除指定的字符trim_char。

        leading:从字符串的头开始删除。
        trailing:从字符串的尾部开始删除。
        borth:从字符串的两边删除。
    f. tim()只能删除半角空格。 


7、字符连接,|| 和 concat都是用于字符连接,但是concat只能用于两个字符之间的连接,而 || 则可以用于多个字符连接,concat多字符连接时需要嵌套


8、instr(a,x)判断字符串a中x字符的位置,不存在则返回0,例如instr('hellow','l'),返回3(返回第一次出现的),所以当需要计算字符串中某个字符的重复次数不能用此函数


9、补充:第8点问题,用translate和length可以计算出某个字符在字符串中的重复次数;

     语法:TRANSLATE(char, from, to)

     用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。

      若from比to字符串长,那么在from中比to中多出的字符将会被删除。

      三个参数中有一个是空,返回值也将是空值。

      举例:SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
            返回值
            -------
            wodefgw
      分析:该语句要将'abcdefga'中的'abc'转换为'wo',
            由于'abc'中'a'对应'wo'中的'w',
            故将'abcdefga'中的'a'全部转换成'w';
            而'abc'中'b'对应'wo'中的'o',
            故将'abcdefga'中的'b'全部转换成'o';
            'abc'中的'c'在'wo'中没有与之对应的字符,

            故将'abcdefga'中的'c'全部删除;

        select translate(',01234,2342,2,', 'a013456789,', ' ') from dual; 结果为2222;


10、replace 

  语法:REPLACE(char, search_string,replacement_string)
  用法:将char中的字符串search_string全部转换为字符串replacement_string。        
  举例:SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
            返回值
            ---------
            fgsgswsgs
 
            SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
            返回值
            -----------------------
            fgeeerrrtttsweeerrrttts
  分析:第一个例子中由于'fgsgswsgs'中没有与'fk'匹配的字符串,
            故返回值仍然是'fgsgswsgs';
            第二个例子中将'fgsgswsgs'中的字符串'sg'全部转换为'eeerrrttt'。
    总结:综上所述,replace与translate都是替代函数,

    只不过replace针对的是字符串,而translate针对的是单个字符。


11、左插入和右插入,LPAD(a,num,x),RPAD(a,num,x);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值