SQL函数以某种模式转换数字



我需要一个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/

相关内容

  • 没有找到相关文章

最新更新