SQLServer中比较末尾带有空格的字符串

Posted majority

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer中比较末尾带有空格的字符串相关的知识,希望对你有一定的参考价值。

SQLServer中比较字符串的时候 如果字符串末尾是空格 那么SQLServer会无视那些空格直接进行比较。

declare @a nvarchar(50);set @a=N‘happycat1988‘ 
declare @b nvarchar(50);set @b=N‘happycat1988 ‘ 
 
①:“=将忽略末尾空格返回true”
 if(@a = @b
    select ‘True‘ as 直接等号比较
else 
    select ‘False‘ as 直接等号比较
②:"like 将返回false" 
if(@a like @b
    select ‘True‘ as like比较
else 
    select ‘False‘ as like比较
③:“len函数也会忽略末尾空格,但datalength不会”
④:“select 语句中也会忽略空格”
    select * from sysc_user where user_code like ‘000065‘ 此语句将查询出user_code 为000065和000065后加入空格的项。
    如果是使用user_code与其他表关联的情况。可能导致延迟加载。
原文摘自https://www.2cto.com/database/201509/441544.html

以上是关于SQLServer中比较末尾带有空格的字符串的主要内容,如果未能解决你的问题,请参考以下文章

为啥从sqlserver里读出的字符串末尾含空格?

C 预处理器宏参数在末尾带有空格以进行连接?

sql2005中字符串长度问题

sql server 2005如何去空格

替换空格

SQL Server 查询结果末尾的空格