在sql server中左键填充varchar到一定长度

时间:2013-08-08 08:09:33

标签: sql sql-server-2008 tsql

我想将12位数的pad int数字保留为0,并以字符“P”

开头

例如,如果数字是345 然后输出应为“P00000000345

我的代码:

Declare @a int
Set @a =8756
Select Right('P00000000000' +Cast(@a As Varchar(11)),12)

DB:SQL SERVER 2008

5 个答案:

答案 0 :(得分:4)

尝试

Declare @a int
Set @a =8756
Select 'P'+Right('00000000000' +Cast(@a As Varchar(11)),11)

答案 1 :(得分:2)

您大部分都是正确的,但应将P作为单独步骤应用:

Declare @a int
Set @a =8756
Select 'P' + Right('000000000000' +Cast(@a As Varchar(11)),12)

答案 2 :(得分:2)

试试这个

Declare @a int
Set @a =8756
Select 'P' + REPLACE(STR(@a, 11), SPACE(1), '0')

演示:http://sqlfiddle.com/#!3/d41d8/18547

答案 3 :(得分:1)

更改

Select Right('P00000000000' +Cast(@a As Varchar(11)),12)

Select 'P' + Right('00000000000' +Cast(@a As Varchar(11)),11)

SQL Fiddle DEMO

答案 4 :(得分:0)

这将用零填充数字。 11 个零并在前面加上 'P',所以总共 12 个字符。

declare @a int
set @a = 234
select @a as ORIG, 'P' || str(@a, 11, '0') as CHAR12_STRING