Oracle SQL中的字符串连接运算符是什么?
我应该注意哪些“有趣”的功能?
(这似乎很明显,但我找不到先前提出的问题)。
答案 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