Как преобразовать ФОРМАТ ‘—(37)9’ из Teradata в Azure Synapse?

#azure #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;
 

Что было бы эквивалентно (ФОРМАТ ‘—(37)9’) в Azure Synapse Analytics?

Ответ №1:

Это действительно странный запрос (в том числе SUM(1) вместо COUNT(*) )

Он возвращает целое число в виде строки, выровненной по левому краю.

Если T2.C3 не является десятичным с дробными цифрами, вы можете просто удалить ФОРМАТ и ПРИВЕСТИ к VARCHAR(20).

Если T2.C3 имеет дробь, сначала ПРИВЕДИТЕ ее к ДВОИЧНОЙ или ДЕСЯТИЧНОЙ(38,0).