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

3

我能否更改Netezza中的数据输入格式?例如,当我导入像007、041或063这样的数字时,输出结果会变成7、41和63,这会破坏业务需求。

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


如果你的数据类型是varchar而不是numeric,我会假设它会保留它。 - undefined
1个回答

6
我找到了答案:

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


Nick.McDermaid对这个问题的评论比这个答案更正确。如果007除了7之外还有其他的意义,那么数据应该被导入为字符字段。 - undefined
@JeremyFortune 不是这样的。他不是在问“应该使用哪种数据类型存储需要前导零的数字。” 他确切地询问如何用前导零“填充”整数。 “如果将它们存储为 varchar,则它们已经具有前导零”并不能告诉某人如何使用 LPAD()。 他可能要处理他不拥有且只能查询的数据。 - undefined
我们只是在这件事上有不同意见。在我看来,如果业务需求暗示“007”具有特殊含义而7没有,将“007”作为整数导入数据库意味着你剥夺了它的含义。当“0007”与“007”表示不同意义时会发生什么呢?你如何知道需要填充多少输出? - undefined
1
@JeremyFortune,我们在同一个团队中合作。我想我的评论直接回应了这个问题的标题:“如何在Netezza SQL中使用前导零填充整数”。你不能通过说“不要使用整数”来回答这个问题。话虽如此,你所说的是完全正确的,显然数据库中应该使用varchar类型。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接