Snowflake to_varchar 在前面添加空格

问题描述 投票:0回答:1

任何人都可以解释为什么 Snowflake 中的 to_varchar 函数在输出前面添加空格:

例如,

SELECT TO_VARCHAR(10101, '000000');
-- ouput: ' 010101'
SELECT LEN(TO_VARCHAR(10101, '000000'))
-- ouput: 7

我可以用 TRIM 包装它,但想了解行为而不是添加不必要的功能

sql snowflake-cloud-data-platform
1个回答
0
投票

您在 TO_VARCHAR(10101, '000000') 返回“010101”(带有前导空格)时看到的行为是因为 Snowflake 在数字为正数时默认添加一个空格,为潜在的负号留出空间。

  1. TO_VARCHAR(10101, '000000') 根据模式 '000000' 设置数字 10101 的格式,这确保数字用前导零填充,总长度为 6 个字符。结果是“010101”,但由于它是正数,因此在前面为潜在的负号保留了一个空格。因此,结果是“010101”(带有前导空格)。

  2. 由于存在空格,函数 LEN(TO_VARCHAR(10101, '000000')) 返回 7。

您可以参考雪花文档以获取更多信息:雪花文档示例

© www.soinside.com 2019 - 2024. All rights reserved.