如何在T-SQL中用空格填充变量

时间:2014-02-19 17:52:23

标签: sql sql-server sql-server-2008 tsql

有人可以帮我解决这个问题

DECLARE @str  VARCHAR(10) 
Set @str='M10'

我有这个字符串我怎么用这样的空格lpad这个

@sstr='       M10'

基本上大小为10,所以7个空格,然后是字符串值M10

我正在使用SQL2005

此致

3 个答案:

答案 0 :(得分:0)

Space() http://technet.microsoft.com/en-us/library/ms187950.aspx

DECLARE @str VARCHAR(10) 
    SET @str = 'M10'

SET @str = Space(7) + @str

--Optional, trims it to 10 characters
SET @str = Right(Space(10) + @str, 10)

替代功能:Replicate() http://technet.microsoft.com/en-us/library/ms174383.aspx

SET @str = Right(Replicate(' ', 10) + @str, 10)

答案 1 :(得分:0)

我希望得到原创性的信任。另一个解决方案经常发布在同一个问题上。

set @str = reverse(cast(reverse(@str) as char(10)))

答案 2 :(得分:0)

另一种方法是使用SUBSTRING()LEN

DECLARE @str VARCHAR(10) = 'M10'
   ,@padding VARCHAR(10) = '                      '

SET @str =  SUBSTRING(@padding, 0, 11 - LEN(@str)) + @str

SELECT @str,LEN(@str)

现在从@Gvee获取代码并将其更改为我的第一个示例

DECLARE @str VARCHAR(10) = 'M10'

SET @str = Space(10-LEN(@str)) + @str

SELECT @str