当前位置:  开发笔记 > 后端 > 正文

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

如何解决《Oracle中的字符串连接运算符是什么?》经验,为你挑选了4个好方法。

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

我应该注意哪些"有趣"功能?

(这似乎很明显,但我找不到先前提出的问题).



1> Tony Andrews..:

这是||,例如:

select 'Mr ' || ename from emp;

我能想到的唯一"有趣"功能是'x' || null回报'x',而不是null你可能想到的.


Oracle中的`||`不是逻辑运算符,因此`'x'|| null`返回`x`.
我希望逻辑操作为null ...不确定我是否曾想过字符串操作.
@ipip:我很困惑 - 如果用"逻辑运算符"表示运算符如"AND","NOT"等,那么当然`||`不是逻辑运算符.但是,'x'|| null`返回`x`会导致什么呢?`n + null`返回null,所以`+`是逻辑运算符?

2> Gary Myers..:

还有concat,但它没有得到太多使用

select concat('a','b') from dual;


同意清楚,但|| 有利于容易地允许超过2个字段
这比||更好 符号.使用|| 只是混淆其他语言使用||.
`CONCAT`也与其他DBMS(至少MySQL和Postgres)兼容.

3> Fabio Fanton..:

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

select concat(a,b)
  from dual

要么

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


对不起我意识到这是2年前,但为什么你更喜欢`concat(a,b)`over a a || b`?

4> 小智..:
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

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有