与SQL Server中的运算符和尾随空格类似

Vig*_*vam 0 sql sql-server ntext sql-server-2008 sql-like

这一个匹配 column_name like 'CharEndsHere%'

这个没有 column_name like 'CharEndsHere'

我知道像操作符一样会考虑尾随空格,所以我只是复制了精确的列值(带有尾随空格)并粘贴它.

有点像column_name like 'CharEndsHere '它不匹配 - 为什么?.

我没有使用'='运算符,因为列类型是ntext

我在这里缺少什么或者不应该like以这种方式使用运算符吗?

编辑:column_name like 'CharEndsHere__'(__表示空格)'CharEndsHere '是该单元格中的确切值,like以这种方式使用有效还是无效?

编辑:

这是我试过的代码,

SELECT * 
FROM [DBName].[dbo].[TableName] 
WHERE [DBName].[dbo].[TableName].Address1 LIKE rtrim('4379 Susquehanna Trail S  ') 
Run Code Online (Sandbox Code Playgroud)

我也试过没有使用rtrim,但结果相同

编辑:根据Blindy的回答,

If a comparison in a query is to return all rows with the string LIKE 'abc' (abc
without a space), all rows that start with abc and have zero or more trailing 
blanks are returned.
Run Code Online (Sandbox Code Playgroud)

但在我的情况下,我已经查询过,Like 'abc'并且有一个包含'abc '(with trailing spaces)哪个单元格没有返回.那是我的实际问题

Bli*_*ndy 7

这是阅读文档的一个案例,这里有非常明确的说明:http://msdn.microsoft.com/en-us/library/ms179859.aspx

使用LIKE执行字符串比较时,模式字符串中的所有字符都很重要.这包括前导或尾随空格.如果查询中的比较是返回字符串LIKE'abc'(abc后跟单个空格)的所有行,则不返回该列的值为abc(abc没有空格)的行.但是,忽略模式匹配的表达式中的尾随空格.如果查询中的比较是返回字符串LIKE'abc'(abc没有空格)的所有行,则返回以abc开头且具有零个或多个尾随空格的所有行.

编辑:根据您的评论,您似乎正在寻找一种方法来使用like而忽略尾随空格.使用这样的东西:field like rtrim('abc ').它仍将使用索引,因为rtrim()它是标量操作数,并且在查找阶段之前进行了评估.