如何转义用作列名的保留字? 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
我正在使用 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