sql concat - 什麼是Oracle中的字符串連接運算符?




multiple string (5)

處理2個字符串時,我會建議concat,|| 當那些字符串超過2:

select concat(a,b)
  from dual

要么

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

Oracle SQL中的字符串連接運算符是什麼?

我應該注意哪些“有趣”的功能?

(這看起來很明顯,但我找不到以前的問題)。


還有concat,但沒有太多用處

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


它是|| , 例如:

select 'Mr ' || ename from emp;

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


即使現在允許使用+ =運算符,它也已在2004年的Bash 3.1中引入。

在較舊的Bash版本上使用此運算符的任何腳本都將失敗,如果您幸運的話,“找不到命令”錯誤,或者“意外令牌附近的語法錯誤”。

對於那些關心向後兼容性的人,請堅持使用舊的標準Bash級聯方法,如所選答案中提到的那些:

foo="Hello"
foo="$foo World"
echo $foo
> Hello World




sql oracle plsql string-concatenation