如何转义用作列名的保留字? Google 数据工作室

How do I escape reserved words used as column names? Google Data Studio

我正在使用 Google 数据工作室生成一些数据仪表板,作为其中的一部分,我在数据集上创建了一个计算字段,该字段从字母数字字符串中去除数值,即 7 out of 7A。

然后我使用 case 语句将另一个数字分配给条纹值,即公式 returns 7 case 语句将其分配给 1000、8 作为 2000、9 到 3000 等

我遇到的问题是,在数据集中,三个字段的标题为 7、8 和 9。因此,在下面的公式中,前三行将条纹字段与标题为 7、8 或9 而不是数值 7、8 或 9

我需要能够转义公式中的 7、8 或 9 个字符,以便将它们视为数值而不是对数据集中字段的引用。

case
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 7 then 1000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 8 then 2000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 9 then 3000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 10 then 4000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 11 then 5000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 12 then 6000
    when CAST(REGEXP_REPLACE(YearGroup, R"\D+", "") AS NUMBER)= 13 then 7000
end

要去除字符串的一部分,请使用REGEXP_EXTRACT

首先检查一个数字,文本只能包含数字。如果是数字,则将文本字段转换为数字。

如果文本字段包含数字 (\d+) 后跟 none 数字 (\D),则提取数字。将其转换为数字并进行计算。

CASE
  WHEN REGEXP_MATCH(YearGroup, r"\d+") THEN CAST(YearGroup AS number )
  WHEN CAST(REGEXP_EXTRACT(YearGroup, r"(\d+)\D") AS number ) BETWEEN 7 AND 13 THEN 
    1000 * ( CAST(REGEXP_EXTRACT(YearGroup, r"(\d+)\w") AS number ) - 6 )
  ELSE NULL
END