当前位置: 首页 > 面试题库 >

LPAD前导零

龚奕
2023-03-14
问题内容

我有发票号码表。准则说数字应该有6个或更多的数字。首先尝试做:

UPDATE t1 SET NUMER=CONCAT('00000',NUMER) WHERE LENGTH(NUMER)=1;   
UPDATE t1 SET NUMER=CONCAT('0000',NUMER) WHERE LENGTH(NUMER)=2;  
UPDATE t1 SET NUMER=CONCAT('000',NUMER) WHERE LENGTH(NUMER)=3;  
UPDATE t1 SET NUMER=CONCAT('00',NUMER) WHERE LENGTH(NUMER)=4;  
UPDATE t1 SET NUMER=CONCAT('0',NUMER) WHERE LENGTH(NUMER)=5;  

但这效率不高,甚至还很漂亮。我尝试了LPAD功能,但是后来出现了问题,因为功能:

UPDATE t1 SET NUMER=LPAD(NUMER,6,'0') WHERE CHAR_LENGTH(NUMER)<=6 ;

返回受影响的零行。还用谷歌搜索,他们说将引号设为零将解决问题,但是没有帮助吗?这是日常导入。

编辑:列NUMER为INT(19)并已包含如下数据:

NUMER
----------
1203  
12303 
123403 
1234503 
...

(目前,它已填充了3到7位不同长度的数据


问题答案:

我认为您应该考虑阅读的指南适用于发票的显示方式,而不适用于如何将其存储在数据库中。

当数字存储为INT时,它是一个纯数字。如果在前面加上零并再次存储,则它仍然是相同的数字。

您可以选择NUMER字段,如下所示,或为该表创建一个视图:

SELECT LPAD(NUMER,6,'0') AS NUMER
FROM ...

或者,不要在从数据库中选择数据时更改数据,而应该在显示时(仅在显示时)用数字填充数字。

我认为您对历史数据保持不变的要求是有争议的。即使是历史数据,发票001203也与发票1203相同。

但是,如果您绝对必须按照描述的方式进行操作,则可以转换为VARCHAR字段。转换后的历史数据可以原样存储,任何新条目都可以填充为所需的零。但我不建议这样做。



 类似资料:
  • 问题内容: Javascript的parseInt函数似乎无法完全正常工作。 问题答案: 这是因为如果数字以“ 0”开头,则将其视为以8为基数(八进制)。 您可以通过将base作为第二个参数来强制使用base。 根据docs,第二个参数是可选的,但并不总是假定为10,如您从示例中看到的那样。

  • 问题内容: 因此,我正在从NOAA读取站代码csv文件,如下所示: 前两列包含气象站代码,有时它们的前导零。当熊猫在未指定dtype的情况下导入它们时,它们将变成整数。没什么大不了的,因为我可以遍历数据帧索引并用类似的东西替换它们,”%06d” % i因为它们始终是六位数字,但是您知道…这是懒惰的方式。 使用以下代码获取csv: 一切都很好,但是当我尝试使用此方法阅读时: 要么 我收到一个讨厌的错

  • 问题内容: 我想将Swift中的a 转换为前导零的a。例如,考虑以下代码: 当前的结果是: 但我希望它是: Swift标准库中是否有一种干净的方法可以做到这一点? 问题答案: 假设您希望字段长度为2,且前导零为零,则可以这样做: 输出: 这需要因此从技术上讲不是斯威夫特语言的一部分,而是由提供的功能框架。请注意这两个和包括因此没有必要再次导入它,如果你已导入或。 格式字符串可以指定多个项目的格式。

  • 问题内容: 我有下面的代码 和输出是 我期望输出如下。 当我打印直接int值时,为什么会给出?我期望Java自动将值从零开始转换为八进制。 和之间是什么关系? 问题答案: 前导0表示一个八进制数(以8为底)。 01111(八进制)是1 * 8 ^ 3 + 1 * 8 ^ 2 + 1 * 8 ^ 1 + 1 * 8 ^ 0 = 585(十进制) 将十进制数字1111转换为八进制字符串。八进制2127

  • 当尝试在Spring data jpa for lpad函数中执行本机查询以获取文本序列时,我遇到了语法错误 Hibernate: select lpad(nextval('finance_accounts_id_seq'): text,8,'0')2022-01-30 09:10:21.102 WARN 16108---[nio-8082-exec-2]o.h.engine.jdbc.spi.S

  • 我如何设置MathJax"序言"在IPython(或Jupyter)笔记本中使用,以方便他人阅读我的文档(http://nbviewer.org),并适用于LaTeX/PDF生成的方式重复使用? 我想用IPython(现在的Jupyter)笔记本记录我后来通过LaTeX转换成PDF的文档(使用)。问题是如何包含我在几乎所有文档中使用的一系列宏定义。比如: 等等。就笔记本而言,一个不令人满意的解决方