在 SQL 中使用 NullIF 和 Coalesc 与在 BI 工具中使用计算列和大小写逻辑 (Tibco Spotfire Analyst)

Using NullIF and Coalesc in SQL vs Calculated Column w Case Logic in BI Tool (Tibco Spotfire Analyst)

提问人:Susan Roth 提问时间:9/12/2023 最后编辑:Susan Roth 更新时间:9/12/2023 访问量:18

问:

在我们的 BI 工具 (Tibco Spotfire Analyst) 中,我们通过添加通常具有案例逻辑表达式的计算列来进一步创建列,以根据从 SQL 查询的数据集计算所需的输出。

我试图解决的总体问题是性能 - 当 Tibco 进行按需查询时加载时间很长。

虽然这可行,但当我们将大量数据加载到 BI 工具中时,这会降低大量计算列的性能。

我觉得我们可以使用 NULLIF 和 COALESC 的某种组合在 Tibco 信息链接的 SQL 中更有效地进行相同的计算。

下面是示例数据,以及我们使用的典型 Case 逻辑:

示例数据

以下是上述 Case 逻辑的预期输出:

示例数据的所需输出

我还没有成功弄清楚如何将相同的所需输出合并到 Tibco 报告中链接的信息链接中的 SQL 中。似乎 NULLIF 和 COALESC 的组合可以工作。

有什么建议吗?

选择

(NULLIF(COALESCE(finalscore,
initialscore), 0.00))AS [分数]

从 评分

SQL 表达式 合并 Tibco nullif

评论

0赞 jarlh 9/12/2023
您使用的是哪些 dbms?
0赞 xQbert 9/12/2023
Coalese 几乎是无限的参数......因此,coalesce(column1,column2,0.00) 会在填充时为您提供第 1 列,在填充时为您提供第 2 列,在两者都未填充时为您提供 0.00。但是,这假定 Column1 和 Column 2 是数值数据类型。与 0.00 类型相同
0赞 Susan Roth 9/12/2023
使用 Redshift。
0赞 xQbert 9/12/2023
或者如果两者都为“Null”,则希望返回 null,则直接停在 coalesce(column1, column2) 处
0赞 Susan Roth 9/12/2023
谢谢@xQBert。虽然如果两者都为“Null”,我确实想要一个 null 返回,但如果 column1 和 column2 中都有值,我也想默认为 column1(无论值是相同还是不同)。

答: 暂无答案