关于mysql 和oracle 的常用字符串操作

一、字符串拼接(|| ||CONCAT

Oracle 

    SELECT A.name || ' 的角色是' || A.roleName as  aaa  FROM A  WHERE  A.id= '111'    

     输出结果:XXXX的角色是XXXX


Mysql

        SELECT (select concat(A.name ,'的角色是',A.roleName)) AS aaa FROM A WHERE A.id= '111'   

        输出结果:XXXX的角色是XXXX


二、字符串截取


 Oraclesubstr(列名,位置n) as 字段 

                长度为正数时,表示从左数n到右(从 N 以后)

                长度为负数时,表示从右数n到左 (从 N 以后)

                substr(列名,位置,长度) as 字段 

                 从此位置n数长度为x

mysql:substring(列名,位置) as 字段  

                长度为正数时,表示从左数n到右(从 N 以后)

                长度为负数时,表示从右数n到左 (从 N 以后)

                substring(列名,位置n,长度x)

                 从此位置n数长度为x


 三、获取某个字符串在字符串的位置


Oracle:instr ,没有找到返回0

                     

                 instr 还可以用来代替like使用

                 eg: select * from A where instr (A.name,"aaa") > 0

                        select * from A where name like "%aaa%"

                   注:

                   instr(title,'oracle’)>0 相当于like

                   instr(title,'oracle’)=0 相当于not like


        Mysql:  locate(string,string2)      (不区分大小写)

                     返回子串string在字符串string2第一个出现的位置,如果string不是在string2 里面,返回0.如果string2 是null ,返回null


四、以某个字符分割字符串
        
oracle : select  substr(A.name,instr(A.name,'a')) as name from A where instr(A.name,'a') >0 
               使用substr 和 instr 组合  确定字符的位置,然后进行截取
mysql :

       substring_index(str,delim,count)

       str:要处理的字符串

       delim:分隔符

       count:计数

       如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容

    如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容

       select   SUBSTRING_INDEX(A.account,'a',1) as account from A where locate ('a',A.account) > 0

、将某个字符串,按照某种规则替换成新的字符串
 oracle : translate(string,replaceStr,regStr)
                replaceStr:需要替换的字符串
                regStr:替换规则   
                replaceStr 和 regStr是一一对应的
  eg:      
          replaceStr = “abd”
          regStr = '123'     a->1,b->2,d->3
                            
           replaceStr = “a”
           regStr = '123'     a->1

           replaceStr = “ab”
           regStr = '1'     a->1,b->''
                            
            replaceStr = “aa”
            regStr = '123'     a->1

mysql: replace(string,oldStr,newStr) 
             replaceStr:需要替换的字符串
              regStr:替换成字符   
                   
 eg:
         REPLACE(ACCOUNT,'a','1')   【把a换成1】
                        
          REPLACE(ACCOUNT,'ab','1')   【把ab换成1】
                            
            REPLACE(ACCOUNT,'a','12')   【把a换成12】




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值