179

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

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

(这似乎很明显,但我找不到以前的问题问它)。

4

5 回答 5

252

它是||,例如:

select 'Mr ' || ename from emp;

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

于 2008-11-10T15:45:06.647 回答
64

还有concat,不过用的不多

select concat('a','b') from dual;
于 2008-11-10T22:09:11.693 回答
13

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

select concat(a,b)
  from dual

或者

  select 'a'||'b'||'c'||'d'
        from dual
于 2015-11-11T08:57:09.620 回答
6
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

于 2015-11-11T00:55:51.547 回答
3

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

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

CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD
于 2020-03-30T19:51:52.773 回答