Data Studio CASE 错误 - THEN/ELSE 参数具有不兼容的类型:TEXT/NUMBER

Data Studio CASE error - THEN/ELSE arguments have incompatible types: TEXT/ NUMBER

我正在尝试将我的 table 维度名称从 1 更改为“Android”,但我收到此错误消息:无效的公式 - THEN/ELSE 参数具有不兼容的类型:文本/数字。所有 THEN/ELSE 个参数必须 return 相同类型。

我的案例陈述如下:

案例 当 app_id = 1 那么 'android' 其他 app_id 结束

正如错误消息所说,整数和字符串不兼容。您需要将整数转换为字符串:

(CASE WHEN app_id = 1 THEN 'android' ELSE CAST(app_id as string) END)

下面分为两部分,首先显示可能的问题,然后显示建议 Calculated Fields:

1) 问题

1.1) 不兼容的类型:TEXT/ NUMBER

由于 androidText 值而 app_idNumber 类型字段,因此出现以下情况:

CASE
  WHEN app_id = 1 THEN 'android'
  ELSE app_id 
END

Invalid formula - THEN/ELSE arguments have incompatible types: TEXT/ NUMBER. All THEN/ELSE arguments must return the same type.

1.2) THEN/ELSE

中没有函数

此问题是由于 函数或数学运算 用于 CASE 语句的 THEN/ELSE 部分:

CASE
  WHEN app_id = 1 THEN 'android'
  ELSE CAST(app_id AS STRING )
END

THEN/ELSE statements cannot contain functions or mathematical operations.

2) 建议

以下 Calculated Fields 中的任何一个都可以解决问题:

2.1) 正则表达式

下面的 Calculated Field 适用于 TextNumber 字段:

REGEXP_REPLACE(CAST(app_id AS TEXT),"^(1)$","android")

2.2) 类型:文本

在数据源中,将 app_id 字段更改为 Text 字段(如果需要维护数字和文本字段,请复制该字段)并使用 CASE 语句:

CASE
  WHEN app_id = "1" THEN 'android'
  ELSE app_id
END

Google Data Studio Report 和一个 GIF 来详细说明: