Tsql 用空格填充字段

Tsql 用空格填充字段,tsql,Tsql,我在SELECT语句中有以下代码- 选择convertvarchar 24,ra.Reference 如果结果是-R0_2,那么是4个字符,那么如何用剩余的20个字符填充尾随空格以构成24个字符呢 类似的是,如果我有一个数字,比如说18.00,我想在前面加一个,我知道我可以用一个CONCAT来实现。 但是这个字段我希望是16个字符,任何前导空格都要用空格填充,所以这个例子看起来像- “XXXXXXXXX 18.00”,其中x为空白 谢谢你的建议 您可以使用的一个技巧是将一定量的填充连接到字符串,

我在SELECT语句中有以下代码-

选择convertvarchar 24,ra.Reference

如果结果是-R0_2,那么是4个字符,那么如何用剩余的20个字符填充尾随空格以构成24个字符呢

类似的是,如果我有一个数字,比如说18.00,我想在前面加一个,我知道我可以用一个CONCAT来实现。 但是这个字段我希望是16个字符,任何前导空格都要用空格填充,所以这个例子看起来像- “XXXXXXXXX 18.00”,其中x为空白


谢谢你的建议

您可以使用的一个技巧是将一定量的填充连接到字符串,以保证填充缺少的空格。对于长度为24个字符的字符串,在第一个示例中,我们可以将24个空格连接到该字符串的末尾。然后,从左边取前24个字符,结果字符串应该用空格右填充。类似的逻辑也适用于另一种情况

第一个问题:

第二个问题:


您可以使用的一个技巧是将一定量的填充连接到字符串,以确保填充缺少的空格。对于长度为24个字符的字符串,在第一个示例中,我们可以将24个空格连接到该字符串的末尾。然后,从左边取前24个字符,结果字符串应该用空格右填充。类似的逻辑也适用于另一种情况

第一个问题:

第二个问题:

您还可以使用REPLICATE根据每个单元格的文本长度精确填充,以确保其始终为24个字符:

DECLARE @Test1 VARCHAR(24) = 'Test', 
        @Test2 VARCHAR(24) = 'Longer String'

SELECT CONCAT(@Test1, REPLICATE(N' ', 24 - LEN(@Test1))), 
       CONCAT(@Test2, REPLICATE(N' ', 24 - LEN(@Test2)))
至于

DECLARE @Number DECIMAL(4,2) = 18.00
SELECT CONCAT(REPLICATE(' ', 15 - LEN(CONVERT(VARCHAR(16), @Number))), '#',@Number)
我在这里使用了15个字符,尽管它是16个字符来解释添加的

您也可以使用REPLICATE根据每个单元格的文本长度精确填充,以确保它始终是24个字符:

DECLARE @Test1 VARCHAR(24) = 'Test', 
        @Test2 VARCHAR(24) = 'Longer String'

SELECT CONCAT(@Test1, REPLICATE(N' ', 24 - LEN(@Test1))), 
       CONCAT(@Test2, REPLICATE(N' ', 24 - LEN(@Test2)))
至于

DECLARE @Number DECIMAL(4,2) = 18.00
SELECT CONCAT(REPLICATE(' ', 15 - LEN(CONVERT(VARCHAR(16), @Number))), '#',@Number)

我在这里使用了15个字符,尽管它是16个字符来解释添加的

You my friend Area star。第二个我稍微向右修改了“”++convertvarchar 16,rac.TotalValue,16谢谢,但是我不能不为比尔感到难过:-你我的朋友是个明星。第二次我稍微向右修改了“”++convertvarchar 16,rac.TotalValue,16谢谢,但我不能不为比尔感到难过:-