将尾随空格插入SQL Server VARCHAR列

时间:2010-10-04 21:35:07

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

我正在尝试将尾随空格插入VARCHAR(50)列,而SQL插入似乎正在将它们删除。这是我的代码:

create table #temp (field varchar(10));
insert into #temp select ' ';
select LEN(field) from #temp;

不幸的是,这会返回零长度,这意味着''被插入为''。我需要为此专栏插入一个空白区域 - 任何想法?

3 个答案:

答案 0 :(得分:11)

使用DATALENGTH,而不是LEN,因为LEN不处理空格。

取这个零长度字符串,例如:

SELECT LEN(' ') AS len, 
       DATALENGTH(' ') AS datalength

结果:

len   datalength
-----------------
0     1

答案 1 :(得分:4)

来自http://msdn.microsoft.com/en-us/library/ms190329.aspx

LEN返回指定字符串表达式的字符数,不包括尾随空格。

答案 2 :(得分:1)

您最好还要注意,SQL Server遵循ANSI / ISO SQL-92填充比较中使用的字符串,以便在比较它们之前匹配它们的长度。因此,您可能希望使用LIKE谓词进行比较[1]

[1]
SQL Server如何将字符串与尾随空格进行比较
http://support.microsoft.com/kb/316626