如何将 FORMAT '--(37)9' 从 Teradata 转换为 Azure Synapse?

问题描述

我有以下问题:

SELECT T1.C1,CAST((SUM(1) OVER (ORDER BY T1.C2 ROWS UNBOUNDED PRECEDING) + T2.C3 (FORMAT '--(37)9') AS VARCHAR(20) )) AS RESULT
FROM
T1
CROSS JOIN
T2;

Azure Synapse Analytics 中 (FORMAT '--(37)9') 的等价物是什么?

解决方法

这是一个非常奇怪的查询(包括 SUM(1) 而不是 COUNT(*)

它返回一个整数作为左对齐的字符串。

除非 T2.C3 是带小数的小数,否则您可以简单地将 FORMAT 和 CAST 删除为 VARCHAR(20)。

如果 T2.C3 有小数,首先 CAST 为 BIGINT 或 DECIMAL(38,0)。