SQL 'Stuff' 连接添加 2 个空格 - 附 Rextester 演示

SQL 'Stuff' to concatenate add 2 spaces - Rextester demo attached

我有一个场景,我将 3 个字符串连接在一起。每个字符串的长度是 25,所以当我连接时,我希望字符串具有固定的宽度。

所需的输出格式:

**String1(length 22 + 3spaces)String2(length 9 +16 spaces)String3(length8+17spaces)**

当前输出:

****String1(length 22 + 3spaces)**2 additional spaces**String2(length 9 +16 spaces)**2 additional spaces**String3(length8+17spaces)**2 additional spaces**

我不想显示额外的空间。有办法吗?

https://rextester.com/GSWML31014

此处附上 rextester 演示。有帮助吗?!

连接前的 25 个字符的字符串

SELECT (
           SELECT LEFT(t1.testdata + SPACE(25), 25)
           FROM   #temp1 t1
           FOR    XML PATH ('')
       ) AS TheOutput

您可以简单地将它们转换为 char(25) - SQL 服务器将根据需要添加尽可能多的尾随空格 - 您不需要 stuff 因为您没有要从结果开头删除的分隔符。

您甚至不需要连接空字符串,因为一旦您使用了 cast,该列就没有别名,因此 for xml path('') 将简单地连接值。如需更多信息,

SELECT CAST(cid AS CHAR(25))
FROM #temp1
FOR XML PATH('')

结果:'1001 1001 1001 '(添加'以显示字符串的长度)