Oracle中的字符串连接运算符是什么?

时间:2008-11-10 15:42:01

标签: sql oracle plsql string-concatenation

Oracle SQL中的字符串连接运算符是什么?

我应该注意哪些“有趣”的功能?

(这似乎很明显,但我找不到先前提出的问题)。

5 个答案:

答案 0 :(得分:216)

||,例如:

select 'Mr ' || ename from emp;

我能想到的唯一“有趣”功能是'x' || null会返回'x',而不会像您预期的那样null

答案 1 :(得分:58)

还有concat,但它没有得到太多使用

select concat('a','b') from dual;

答案 2 :(得分:9)

我建议在处理2个字符串和||时使用concat当这些字符串超过2时:

select concat(a,b)
  from dual

  select 'a'||'b'||'c'||'d'
        from dual

答案 3 :(得分:5)

DECLARE
     a      VARCHAR2(30);
     b      VARCHAR2(30);
     c      VARCHAR2(30);
 BEGIN
      a  := ' Abc '; 
      b  := ' def ';
      c  := a || b;
 DBMS_OUTPUT.PUT_LINE(c);  
   END;

输出:: Abc def

答案 4 :(得分:1)

在连接两个以上字符串时,使用CONCAT(CONCAT(,),)对我有用。

我的问题需要(仅)使用日期字符串并按如下方式从YYYYMMDD创建YYYY-MM-DD(即,不转换为日期格式):

CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD