如何在 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 中为指定的值范围填充前导零的字符串