我需要一个SQL查询来将值在1到300000之间的int转换为具有以下模式的数字:始终为8。
例如:
1变为00000001,
123变为00000123,
23456变为00123456。
我不知道该怎么做。。。我该怎么做?
在标准SQL中,您可以使用以下技巧:
select substring(cast( (num + 100000000) as varchar(255)) from 2)
很少有数据库真正支持这种语法。任何给定的数据库都可以执行您想要的操作,但方法取决于您正在使用的数据库。
对于MS SQL Server
您可以使用FORMAT
函数,如下所示:
SELECT FORMAT(123,'00000000')
https://database.guide/how-to-format-numbers-in-sql-server/#:~:text=从%20SQL%20Server%2020012启动%20,%20输出%20应为%20格式。
阅读链接前导零
对于MySql/Oracle
你可以使用LPAD,像这样:
SELECT LPAD('123',8,'0')
https://database.guide/how-to-add-leading-zeros-to-a-number-in-mysql/