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

如何在Netezza SQL中用前导零填充整数,sql,netezza,Sql,Netezza,我是否可以更改Netezza中的数据输入格式。例如,每当我导入像007、041或063这样的数字时,输出分别为7、41、63,这就破坏了业务需求 很抱歉问了这么愚蠢的问题,因为我是Netezza的新手。我找到了答案: 选择lpad(s.Col_name,3,0)作为结果 从表名中,我假设如果您的数据类型是varchar而不是numeric,则会保留它。McDermaid对这个问题的评论比这个答案更正确。如果007的值超出了7,则数据应作为字符字段导入。@JeremyFault不是真的。他不是在问

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

很抱歉问了这么愚蠢的问题,因为我是Netezza的新手。

我找到了答案:

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

中,我假设如果您的数据类型是varchar而不是numeric,则会保留它。McDermaid对这个问题的评论比这个答案更正确。如果
007
的值超出了
7
,则数据应作为字符字段导入。@JeremyFault不是真的。他不是在问“我应该使用哪种数据类型来存储需要前导0的数字”,而是在问如何用前导零“填充”整数。“如果它们存储为varchar,那么它们就已经有前导零了”没有告诉某人如何使用LPAD()。他处理的数据不是他自己的,只能查询。我们只是在这个问题上有分歧。在我看来,如果业务需求意味着“007”意味着什么,而7则不是,那么将“007”作为整数导入数据库就意味着去掉了它的含义。当“0007”的意思与“007”不同时会发生什么?你怎么知道要在输出上增加多少?@JeremyFuture,你和我在同一支球队踢球。我想我的评论直接针对了这个问题的标题:“如何在Netezza SQL中用前导零填充整数”。你不能通过说“不要使用整数”来回答这个问题。这么说,你所说的是100%正确的,这显然应该是数据库中的一个varchar。