oracle字符连接函数concat与||有什么区别

解决方案 »

  1.   


    /*
    CONCAT只能连接两个字符串
    The syntax for the concat function is:
    concat( string1, string2 )
    string1 is the first string to concatenate.
    string2 is the second string to concatenate.
    */
    --||可以连接多个字符串
    SQL> select concat('CSDN','_yeeXun') from dual;
     
    CONCAT('CSDN','_YEEXUN')
    ------------------------
    CSDN_yeeXun
     
    SQL> select 'CSDN'||'_yeeXun' from dual;
     
    'CSDN'||'_YEEXUN'
    -----------------
    CSDN_yeeXun
     
    SQL> select concat('CSDN','_yeeXun','china') from dual;
     
    select concat('CSDN','_yeeXun','china') from dual
     
    ORA-00909: invalid number of arguments
     
    SQL> select 'CSDN'||'_yeeXun'||'china' from dual;
     
    'CSDN'||'_YEEXUN'||'CHINA'
    --------------------------
    CSDN_yeeXunchina
      

  2.   

    --concat只能连接两个字符串,连接多个需要嵌套调用不方便
    SQL> select concat('aa','bb') from dual;
     
    CONCAT('AA','BB')
    -----------------
    aabb--||直接连接多个字符串
    SQL> select 'aa'||'bb'||'cc' from dual;
     
    'AA'||'BB'||'CC'
    ----------------
    aabbcc
     
    SQL> 
      

  3.   

    哪个好呢 如果我嵌套下,那个效率高?
    select concat(concat('aa','bb'),'cc') from dual
    select 'aa'||'bb'||'cc' from dual
      

  4.   

    select 'aa'||'bb'||'cc' from dual这个好些吧
    如果你要连接20个字符串呢?那么你不是要调用concat函数20次,再说oracle处理系统函数还是需要时间的
      

  5.   

    如果把aa和bb连接并用逗号隔开,用concat函数怎么做
      

  6.   

    貌似用单用concat函数做不到吧!
      

  7.   

    一样的可以。
    select concat(concat('aa',','),'bb') from dual
    这样得到的结果就是:
    CONCAT(CONCAT('AA',','),'BB')
    -----------------------------
    aa,bb