Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何将整数转换为文本对齐左侧的文本?_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 如何将整数转换为文本对齐左侧的文本?

Sql server 如何将整数转换为文本对齐左侧的文本?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我需要转换 1 12 145 to(我使用S表示空间) 如果我使用CAST(值为CHAR(5)) 1SSSS 12SSS 145SS 如何做到这一点 RIGHT(' ' + CAST (VALUE as VARCHAR(5)), 5) 更一般地说: DECLARE @PadTo tinyint; SET @PadTo = 5; SELECT RIGHT(REPLICATE(' ', @PadTo) + CAST(VALUE as VARCHAR(255)), @PadT

我需要转换

1
12
145
to(我使用S表示空间)

如果我使用
CAST(值为CHAR(5))

1SSSS
12SSS
145SS
如何做到这一点

RIGHT('     ' + CAST (VALUE as VARCHAR(5)), 5)
更一般地说:

DECLARE @PadTo tinyint;
SET @PadTo = 5;

SELECT
     RIGHT(REPLICATE(' ', @PadTo) + CAST(VALUE as VARCHAR(255)), @PadTo)
...

您可以在此处找到您的Answer:

特别是:

SELECT RIGHT ('000000'+ CAST (@Number AS varchar), 6)
返回

-----
    1
   12
  145

平淡无奇的复制/粘贴。OP要求提供前导空格和长度5,但:本可以再努力一点……否决票是不公平的,我想给出一个提示,给出完整的答案是Sooo lameI没有否决票:你的答案没有错,只是看起来像一个复制+粘贴。@VoodooRider-我对你上述的政策感到有点困惑。这是一个问答网站,不是一个问答网站。感谢所有人的回复(这似乎是一个简单的任务),无论如何,我在问之前搜索了很久,没有结果。我选择这个作为答案,因为它是最紧凑的。无论如何,正确的想法当然是好的。
declare @T table(Value int)

insert into @T values (1),(12),(145)

select right(stuff(Value, 1, 0, space(5)), 5)
from @T
SELECT STR(N,5)
FROM (VALUES (1),(12),(145)) T(N)
-----
    1
   12
  145