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)哪个单元格没有返回.那是我的实际问题
这是阅读文档的一个案例,这里有非常明确的说明: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()它是标量操作数,并且在查找阶段之前进行了评估.
| 归档时间: |
|
| 查看次数: |
4619 次 |
| 最近记录: |