首页 > 解决方案 > 数据洞察案例语句 - 如何返回原始值?

问题描述

我正在尝试制作一个计算字段。这是我写的案例陈述。

case Rank
  when 0 then '-'
end

这按预期工作,但为其他值返回 null:

在此处输入图像描述

我想显示 0 以外的值的原始值(在这种情况下,应该是 1 而不是 null)。我试过这个:

case Rank
  when 0 then '-'
  else Rank
end

但收到此错误:

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

在此处输入图像描述

我找不到任何例子。有没有办法做到这一点?

标签: google-data-studio

解决方案


显示第二个CASE语句中的错误是因为该字段的语义类型(以下称为类型Rank数字,而第THEN2 行(破折号-)上的部分是文本类型

无效的公式 - THEN/ELSE 参数的类型不兼容:TEXT/NUMBER。所有 THEN/ELSE 参数必须返回相同的类型。

下面的解决方案涉及确保所有输出都是单个Type,(在本例中为Text);有几种方法(使用下面的#1或#2):

1)Rank将计算字段中的类型更改为文本

一种方法是合并将CASTField Type更改为Text的功能;整个过程可以使用以下函数在单个计算字段中完成:REGEXP_REPLACE

REGEXP_REPLACE(CAST(Rank AS TEXT ), "^(0)$", "-" )

2)Rank将数据源的类型更改为文本

第二种方法是更改​​数据源的字段类型Rank使用第二个CASE语句进行小编辑(将 0 括在引号中,因此0变为"0"):

CASE Rank
  WHEN "0" THEN '-'
  ELSE Rank
END

可编辑的 Google Data Studio 报告和 GIF 来详细说明:


推荐阅读