Oracle 中的字符串连接操作符是什么?

OracleSQL 中的字符串连接操作符是什么?

有没有什么“有趣”的特性是我需要注意的?

(这似乎是显而易见的,但我找不到以前的问题)。

367145 次浏览

例如,它就是 ||:

select 'Mr ' || ename from emp;

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

还有连接,但不常用

select concat('a','b') from dual;
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

我建议在处理2个字符串时使用 concat,当这些字符串大于2时使用 | | :

select concat(a,b)
from dual

或者

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

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

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

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

Oracle SQL中串联字符串有两种方法。使用 CONCAT函数或 ||操作符。

函数允许将两个字符串连接在一起

SELECT CONCAT( string1, string2 ) FROM dual;

由于 CONCAT函数将只有 允许您将两个值连接在一起。如果您想连接多于两个值,您可以 nEst 多重 CONCAT 函数调用。

SELECT CONCAT(CONCAT('A', 'B'),'C') FROM dual;

使用 CONCAT函数的另一种方法是使用 ||运算符

SELECT 'My Name' || 'My Age' FROM dual;