【问题标题】:What does double bars (||) mean in SQL? [duplicate]SQL中的双杠(||)是什么意思? [复制]
【发布时间】:2014-07-18 03:13:56
【问题描述】:

我正在尝试理解以下查询:
select count(distinct Name || '' || Surname) from PEOPLE;
双杠是什么意思?这个查询有什么作用?


在 MySQL 中:
select "aaaaa" || '' || "bbbbb";

+--------------------------+ | "aaaaa" || '' || "bbbbb" | +--------------------------+ | 0 | +--------------------------+

【问题讨论】:

  • 在 Oracle DB 中,两个竖线连接字符串。你用的是什么数据库?
  • 这是字符串连接。您可以运行查询并亲自查看。
  • 发布有关 SQL 的问题时,通常还需要为您正在使用的特定 DBMS 添加标签,因为它们之间的语法不同。 (在这种情况下,您似乎使用的是 Oracle。)
  • @Martin:我知道,但是 DBMS 经常是相关的;这是一个好习惯。例如,SQL Server 使用“+”作为字符串连接运算符。 (当然,更好的解决方案是让发布者简单地运行不带count() 的查询,看看它首先做了什么,而不是在这里发布。)
  • @Andreas,谢谢,其中一个答案是:in MySQL || means 'logical or'

标签: mysql sql


【解决方案1】:

双杠是连接:

select 'hello' || ' ' || 'world' from dual;

产量

'hello world'

【讨论】:

  • 请注意,您还可以在 concat 中放置 列名 -- select 'hello' || col_1 || 'world' from dual; 将连接表中的 col_1 值以获取返回的条目。
  • 选择'你好' || '' ||来自双重的“世界”; => 0
  • 请注意,这个答案来自 ansi 标准。对于||,mysql 不遵循该标准。详情请参阅stackoverflow.com/a/23372603/3430807
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 2014-07-15
  • 2015-02-02
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多