SQLSERVER 的格式化命令是什么?解决方案

SQLSERVER 的格式化命令是什么?
在VB中,   可以用FORMAT来把数字格式化为前导0:

1   -->   Format(1, "0000 ")   -->   0001

那么在SQLSERVER怎么样把1格式化为 "0001 "?


------解决方案--------------------
declare @iNum as int,@iLen as int
set @iLen = 4 --格式化字符的长度
set @iNum = 1

if @iLen - len(cast(@iNum as varchar)) > 0
begin
select REPLICATE( '0 ',@iLen - len(cast(@iNum as varchar))) + cast(@iNum as varchar)
end
else
begin
select @iNum
end

------解决方案--------------------
SQL数据库中没有类似format这样的日期文本数字通用的格式化函数,不同的类型有不同的函数
你的这个要求可以变通解决,比如

select right( '0000 '+cast(1 as varchar(4)),4))
------解决方案--------------------
case when len(cast(intVariant as varchar))> =4
then
cast(intVariant as varchar)
else
replicate( '0 ',4-len(cast(intVariant as varchar)))+cast(intVariant as varchar)
end