【问题标题】:Unexpected Token in SQL CONCAT statement [closed]SQL CONCAT 语句中的意外令牌 [关闭]
【发布时间】:2021-10-16 18:08:07
【问题描述】:

我正在为我参加的一个认证计划学习 SQL,并尝试制作一个 CONCAT 声明。

我的查询是:

SELECT 
    NOC
    CONCAT(Event, " ", Discipline) AS Team
FROM 
    Table1

当我在 LibreOffice Base 中运行它时,我得到一个错误

意外的令牌(,在语句 [SELECT NOC 中需要 FROM 连接(]

我已经完成了我知道如何使用我知道如何做的语法的所有事情;我在 SELECT NOC 之后添加了一个逗号,我尝试添加分号、删除括号等,它们都返回不同的错误。谁能告诉我我做错了什么?

澄清一下,EventDiscipline 是我表中的列,而不是字符串。

【问题讨论】:

  • NOC 应该是什么?列?
  • 是的,NOC 是另一列。
  • 你在 NOC 后面漏掉了逗号。

标签: sql concatenation


【解决方案1】:

引号必须是单引号:

  • CONCAT(Event, ' ', Discipline)

NOC后面也应该有一个逗号(假设它是Table1中的一列),Event是保留字。此查询应在 SQL 查询工具(例如 SQL Management Studio)中工作

SELECT 
  NOC,
  CONCAT([Event],' ', Discipline) AS Team
FROM 
  Table1

【讨论】:

  • 感谢您这么快回答。不幸的是,为 CONCAT 语句切换到单引号并没有影响我的错误,并且在 NOC 之后添加逗号给了我以下错误: S1000 General error java.lang.ArrayIndexOutOfBoundsException: 2 in statement [SELECT "NOC", CONCAT("Event ", ' ', "Discipline" )] 不过,按照您的建议使用 BigQuery 效果很好,所以这可能只是 LibreOffice 的一个问题。
  • 啊,是的,对不起,我不熟悉 LibreOffice,但这可以在 SQL 查询工具中使用。
  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • @mvpstudios - 您显然是在使用代码或单元格公式来创建您的 SQL 语句。例如,在您的错误消息中,此处的答案在列名周围没有双引号,但是它们存在。如果您打开一个单独问题,解释您如何使用 LibreOffice 创建该 SQL 语句,我们将很乐意帮助您诊断该问题。至于这个问题中提出的SQL问题,这个答案显然是正确的,因此应该被认为是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 2018-06-07
  • 1970-01-01
相关资源
最近更新 更多