如何在 BigQuery 中使用 CONCAT 语句和 CASE 语句?
How to use a CONCAT statement with a CASE statement in BigQuery?
是否可以在 BigQuery 中将 CONCAT 与 CASE 语句一起使用?如果是这样,如何?
当我们尝试这段代码时,它给出了以下错误:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END AS Age
) AS AgeString
FROM [our table]
Error: Encountered " "AS" "AS "" at line 5, column 49. Was expecting:
")" ...
问题在这里:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END AS Age -- <- this alias
) AS AgeString
FROM [our table]
由于您不能将别名放入表达式中,因此此查询 returns 使用旧版或标准 SQL 时出错。解决方法是删除别名:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END
) AS AgeString
FROM [our table]
作为替代方案 - 如果出于某种原因别名对你来说是 "important" 例如来自记录预期 and/or 使代码更多 verbose/descriptive - 你可以用 [= 结束 CASE 16=] 如下
#standardSQL
SELECT CONCAT(
"Age:",
(SELECT CASE WHEN Age IS NULL THEN "" ELSE Age END AS Age)
) AS AgeString
FROM `project.dataset.table`
是否可以在 BigQuery 中将 CONCAT 与 CASE 语句一起使用?如果是这样,如何?
当我们尝试这段代码时,它给出了以下错误:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END AS Age
) AS AgeString
FROM [our table]
Error: Encountered " "AS" "AS "" at line 5, column 49. Was expecting: ")" ...
问题在这里:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END AS Age -- <- this alias
) AS AgeString
FROM [our table]
由于您不能将别名放入表达式中,因此此查询 returns 使用旧版或标准 SQL 时出错。解决方法是删除别名:
SELECT
CONCAT(
"Age:",
CASE WHEN Age IS null THEN "" ELSE Age END
) AS AgeString
FROM [our table]
作为替代方案 - 如果出于某种原因别名对你来说是 "important" 例如来自记录预期 and/or 使代码更多 verbose/descriptive - 你可以用 [= 结束 CASE 16=] 如下
#standardSQL
SELECT CONCAT(
"Age:",
(SELECT CASE WHEN Age IS NULL THEN "" ELSE Age END AS Age)
) AS AgeString
FROM `project.dataset.table`