如何将Teradata查询转换为BigQuery语句实现field2格式化输出为-00000000001
Teradata求和格式化语句转BigQuery实现方案
原需求为将求和后的field2结果格式化为-00000000001样式(总长度11位、负号前置、不足位补前导零),转换方案如下:
原Teradata查询代码:
Select Sum(case when field1='C' Then field2 Else 0 end) Format (-9999999999) char(11)
转换后的BigQuery兼容语句:
SELECT FORMAT_STRING("%011d", SUM(CASE WHEN field1 = 'C' THEN field2 ELSE 0 END)) AS formatted_field2
说明
- BigQuery没有Teradata专属的
FORMAT格式化子句,改用内置的FORMAT_STRING函数实现格式化需求 - 格式符
%011d的作用:将整数格式化为总长度11位的字符串,数值为负时负号固定在最左侧,剩余位数不足时自动补前导零,完全匹配目标格式要求 - 若field2为字符串类型,需要先转换为数值类型再参与计算,对应部分调整为
THEN CAST(field2 AS INT64)即可
内容的提问来源于stack exchange,提问作者Heena kouser
相关产品推荐
相关产品推荐

