0

我想将 12 位的整数填充为 0,并以字符开头为 'P'

例如如果数字是 345 那么输出应该是 ' P00000000345'

我的代码:

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

数据库:SQL 服务器 2008

4

5 回答 5

4

尝试

Declare @a int
Set @a =8756
Select 'P'+Right('00000000000' +Cast(@a As Varchar(11)),11)
于 2013-08-08T08:12:46.227 回答
2

您大多是正确的,但应将其P作为单独的步骤应用:

Declare @a int
Set @a =8756
Select 'P' + Right('000000000000' +Cast(@a As Varchar(11)),12)
于 2013-08-08T08:12:44.330 回答
2

试试这个

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

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

于 2013-08-08T08:18:10.770 回答
1

改变

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

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

SQL 小提琴演示

于 2013-08-08T08:12:22.710 回答
0

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

declare @a int
set @a = 234
select @a as ORIG, 'P' || str(@a, 11, '0') as CHAR12_STRING
于 2021-07-08T09:02:33.140 回答