语法错误:预期输入结束,但在 [2:1] 处获得标识符“CONCAT_WS”

Posted

技术标签:

【中文标题】语法错误:预期输入结束,但在 [2:1] 处获得标识符“CONCAT_WS”【英文标题】:Syntax error: Expected end of input but got identifier "CONCAT_WS" at [2:1] 【发布时间】:2021-06-19 02:49:41 【问题描述】:

“CONCAT_WS(‘.’、‘www’、‘google’、‘com’)

*当您运行 SQL 函数时,分隔符(即句点)在 Google 之前和之后输入" 尝试使用此功能大查询,但收到错误。 如果我们无法在 big-query 上使用此功能,那么如何在 google_big_query 中添加 google 前后的句点。

【问题讨论】:

【参考方案1】:

BigQuery 不支持concat_ws(),但使用数组很容易模拟:

select array_to_string(array['www', 'google', 'com'], '.')

请注意,这与 concat_ws() 具有相同的语义,因为它忽略了 NULL 值。所以上面和下面都返回'www.google.com'

select array_to_string(array[NULL, 'www', NULL, 'google', 'com'], '.')

【讨论】:

谢谢,戈登。您能用第二种语法回答我的问题吗? -- select array_to_string(array[NULL, 'www', NULL, 'google', 'com'], '.') -- 这就是为什么 'google' 和 'com' 之间没有 NULL 的原因。可以包含吗?? @sathyanarayanan 。 . .这实际上被认为是一个功能。在任何情况下,如果您希望 NULL 在字符串中,则需要使用 'NULL' 作为字符串,而不是 NULL 值。

以上是关于语法错误:预期输入结束,但在 [2:1] 处获得标识符“CONCAT_WS”的主要内容,如果未能解决你的问题,请参考以下文章

BigQuery SQL 语法错误 FOR 函数(“语法错误:预期的”)“但在 [7:18] 获得关键字 FOR”)

语法错误:应为“(”或“,”或关键字 SELECT,但在 [6:1] 处获得关键字 DELETE

错误:语法错误:应为“)”,但在子查询中得到语句结束语句

BigQuery SQL语法错误FOR函数(“语法错误:预期的”)”,但在[7:18]处获得了关键字FOR)

获得错误预期BEGIN_ARRAY但在第1行第2列路径$是BEGIN_OBJECT

预期开始数组,但在改造中出现开始对象错误