在MSSQL中,实现不足位数返回补0的操作可以有以下方式,如果有其它好用的方式,欢迎交流,学习!!!
1.可以使用RIGHT函数和CAST函数来实现
SELECT RIGHT('00000' + CAST('1' AS nvarchar(5)), 5)
2.通过函数进行简单实现
select dbo.[fn_FillNumberWithZero]('1',4)
代码如下:
CREATE FUNCTION [dbo].[fn_FillNumberWithZero] ( --填充的数字
@num INT,
--总位数
@len INT )
RETURNS VARCHAR(50)
AS
BEGIN
--如果传入的流水号大于总的长度,那么直接返回流水号字符串格式
IF ( LEN(CONVERT(VARCHAR(50), @num)) > @len )
RETURN CONVERT(VARCHAR(50),@num)
ELSE
BEGIN
--需要填充0的位数
DECLARE @NeedFillLen INT
SET @NeedFillLen = @Len - LEN(CONVERT(VARCHAR(50), @num))
--获取需要填充的0的字符串
DECLARE @i INT
SET @i = 0
DECLARE @temp VARCHAR(50)
SET @temp = N''
WHILE @i < @NeedFillLen
BEGIN
SET @temp = @temp + '0'
SET @i = @i + 1
END
--返回组后的字符串
RETURN @temp+CONVERT(VARCHAR(50),@num)
END
RETURN ''
END
GO