SQL Select 符号 || 的含义是什么?

70

||在SQL中的作用是将两个字符串连接成一个字符串。

SELECT 'a' || ',' || 'b' AS letter

参见:https://dev59.com/qXM_5IYBdhLWcg3wcSx_ - SQLMason
4
你尝试执行它了吗? - Martin Smith
在你的例子中,它并没有添加任何东西,但在其他情况下很有帮助,比如在 ... WHERE Name LIKE '%' || :searched || '%'... 中。 - mins
6个回答

94

||代表字符串连接。不幸的是,字符串连接在所有sql方言中并不完全可移植:

  • ansi sql: ||(中缀运算符)
  • mysql: concat(变长函数)。注意:||表示“逻辑或”(虽然可以配置),感谢@hvd指出这一点)
  • oracle: ||(中缀运算符),concat注意:仅为二元函数!)
  • postgres: ||(中缀运算符)
  • sql server: +(中缀运算符),concat(变长函数)
  • sqlite: ||(中缀运算符)

希望混淆已经完全了解...


4
MySQL中可以进行配置。参见:sqlmode_pipes_as_concat - user743382
4
MySQL是唯一一个将"||"等同于逻辑OR的关系型数据库管理系统吗? - Andrey M. Stepanov
此外,MariaDB 默认将 || 视为逻辑或(OR)操作符,因为 MariaDB 是 MySQL 的一个分支。它们自从分支以来已经有了很多变化,应被视为不同的产品,但它们仍然共享这种行为。 - Bill Karwin

9

SELECT 'a' || ',' || 'b' AS letter将会合并字母。结果将变为'a,b'


|| 运算符连接字符串。 - aydow

6

5

它是一个连接运算符。因此,你会从那里得到'a,b'。

我认为||在大多数关系型数据库管理系统上都可以使用。SQL Server需要+运算符(感谢HVD纠正我!)。


1
Microsoft SQL Server是其中的一个例外:它不支持||,而需要使用+ - user743382

5

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接