如何在 Netezza SQL 中用前导零填充整数

Posted

技术标签:

【中文标题】如何在 Netezza SQL 中用前导零填充整数【英文标题】:How to pad integers with leading zeroes in Netezza SQL 【发布时间】:2016-03-04 20:26:03 【问题描述】:

是否可以更改 Netezza 中的数据输入格式。例如,每当我导入 007 或 041 或 063 之类的数字时,输出分别为 7 ,41,63 ,这会破坏业务需求。

抱歉,我是 Netezza 的新手,所以问了这么愚蠢的问题。

【问题讨论】:

我假设如果你的数据类型是 varchar 而不是 numeric 它会保留它 【参考方案1】:

我找到了答案:

选择 lpad(s.Col_name,3,0) 作为结果 从表名

【讨论】:

Nick.McDermaid 对这个问题的评论比这个答案更正确。如果007 的值不仅仅是7,那么数据应该作为字符字段导入。 @JeremyFortune 不正确。他并不是在问“我应该使用哪种数据类型来存储需要前导 0 的数字”。他特别询问如何用前导零“填充”整数。 “如果将它们存储为 varchar,它们将已经有前导零”并没有告诉某人如何使用 LPAD()。他处理不属于他且只能查询的数据。 我们只是不同意这一点。在我看来,如果业务需求暗示“007”意味着某事而 7 没有,那么将“007”作为整数导入数据库意味着您剥夺了其意义的价值。当“0007”的含义与“007”不同时会发生什么?你怎么知道要在输出上填充多少? @JeremyFortune,你和我在这里为同一支球队效力。我想我的评论直接谈到了这个问题的标题:“如何在 Netezza SQL 中用前导零填充整数”。你不能通过说“不要使用整数”来回答这个问题。话虽如此,您所说的是 100% 正确,这显然应该是数据库中的 varchar。

以上是关于如何在 Netezza SQL 中用前导零填充整数的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 中为指定的值范围填充前导零的字符串

在JavaScript中用前导零填充数字[重复]

在 XSLT 1.0 中使用前导零填充数字

用前导零填充字符串,使其在 SQL Server 2008 中的长度为 3 个字符

如何在 PHP 整数中保留前导零 [重复]

如何在java中获取带有前导零的整数中的位数?