在SQL Server VARCHAR列中插入尾随空格
我试图在VARCHAR(50)列中插入尾随空格,而sqlinsert似乎将其截断。这是我的密码:在SQL Server VARCHAR列中插入尾随空格,sql,sql-server,tsql,sql-server-2008,string,Sql,Sql Server,Tsql,Sql Server 2008,String,我试图在VARCHAR(50)列中插入尾随空格,而sqlinsert似乎将其截断。这是我的密码: create table #temp (field varchar(10)); insert into #temp select ' '; select LEN(field) from #temp; 不幸的是,这返回的长度为零,这意味着“”已作为“”插入。我需要为本专栏插入一个空格-有什么想法吗?请使用,不要,因为LEN不处理空格 以这个零长度字符串为例: SELECT LEN(' ') AS l
create table #temp (field varchar(10));
insert into #temp select ' ';
select LEN(field) from #temp;
不幸的是,这返回的长度为零,这意味着“”已作为“”插入。我需要为本专栏插入一个空格-有什么想法吗?请使用,不要,因为LEN不处理空格
以这个零长度字符串为例:
SELECT LEN(' ') AS len,
DATALENGTH(' ') AS datalength
结果:
len datalength
-----------------
0 1
发件人:
LEN返回指定字符串表达式的字符数,不包括尾随空格。您最好还知道,SQL Server遵循ANSI/ISO SQL-92对比较中使用的字符串进行填充,以便在比较之前使其长度匹配。因此,您可能希望使用LIKE谓词进行比较[1] [1]
SQL Server如何将字符串与尾随空格进行比较
LEN将“拖尾”空格解释为零长度字符串:)@Aamod Thakur:零长度字符串没有要拖尾的字符;)@阿莫德·塔库尔:谢谢,这条评论促使我重新写了这条声明,这样它才更有意义。