OracleSQL 中的字符串连接操作符是什么?
有没有什么“有趣”的特性是我需要注意的?
(这似乎是显而易见的,但我找不到以前的问题)。
例如,它就是 ||:
||
select 'Mr ' || ename from emp;
我能想到的唯一“有趣”的特性是 'x' || null返回 'x',而不是您可能期望的 null。
'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(,),)对我很有用。
CONCAT(CONCAT(,),)
我的问题需要使用日期字符串(仅)并从 YYYY-MM-DD创建如下 YYYYMMDD(即不转换为日期格式) :
YYYY-MM-DD
YYYYMMDD
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD
在 Oracle SQL中串联字符串有两种方法。使用 CONCAT函数或 ||操作符。
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;