首页 > 解决方案 > SQL中如何将0添加到数字属性中,以便属性中的所有数字都是10位数字

问题描述

我有一个数字属性,其中包含数据库表中的 ID。但是,ID 的长度不同(例如 54261、73284619、3723)。我希望它们都具有相同的长度,方法是在它们前面添加 0,以便它们都是 10 位数字(例如 000054261、0073284619、0000003723)。我想知道我是否可以编写一个 SQL 查询来实现这一点,或者我必须在 Excel 中执行此操作。

标签: sqldatabaseoracle-sqldeveloper

解决方案


通常建议使用 LPAD、RPAD 等功能来实现您的用例

试试下面的东西

     Select   TO_NUMBER(LPAD(TO_CHAR(ID) , 10,'0')) FROM 
      DUAL;

LPAD 将在字符串 id 的左侧添加零以使其成为 10 位数字,RPAD 反之亦然,在右侧添加 0

注意:可能并非所有数据库都支持,但主要支持 oracle、postgres 等。


推荐阅读