T-SQL格式整数为2位字符串

Jam*_*mus 32 t-sql format casting

我找不到在T-SQL中执行此操作的简单方法.

我有一个列(SortExport_CSV)返回一个整数'2'到90.如果存储的数字是一个数字,我需要它转换为一个以0开头的2位数字符串.我试图使用CAST但我不知道如何以首选格式显示样式(0#)

当然,在前端(SSRS,MSAccess,Excel等)上很容易做到这一点,但在这种情况下,我没有前端,必须为原始数据集提供已经格式化的2位数字符串.

Spa*_*rky 52

select right ('00'+ltrim(str( <number> )),2 )
Run Code Online (Sandbox Code Playgroud)


小智 20

您可以使用T-SQL的内置格式函数:

declare @number int  = 1
select format (@number, '0#')
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于SQL Server 2012+ (7认同)

Luk*_*keH 18

SELECT RIGHT('0' + CAST(sortexport_csv AS VARCHAR), 2)
FROM your_table
Run Code Online (Sandbox Code Playgroud)


小智 9

你们都做了太多工作:

right(str(100+@x),2)

-- for a function, same idea: 
--
create function zeroPad( @yourNum int, @wid int)
as 
begin
  return right( 1000000+@yourNum), @wid)
end
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 5

将值转换为字符串,在其前面添加一个零(以便它是两个或树字符),并获取最后一个字符:

right('0'+convert(varchar(2),Sort_Export_CSV),2)
Run Code Online (Sandbox Code Playgroud)