SQL服务器。LIKE 语句使用'foo%'会产生错误的结果

1 人不认可

我有一个问题, LIKE 语句 'foo%' 比语句 '%foo%' 提供的行数少,尽管所有的行都以 foo 开始。

这里有一个行的例子。

在截图中你可以看到,第二个结果即有IEC60601-2-16ED2这样的行。我之前已经尝试过检测白色空间。

这里会有什么问题呢?

4 个评论
SELECT 你能在 CAST(modul AS VARBINARY(30)) ,并向我们展示其结果吗?
最终有些行含有空格?试着修剪空间并过滤它...WHERE LTRIM(field) like 'foo%'
如果你在输出中加入cur_identifier会怎样? 你限制了cur_identifer,却显示了modul......还是说这是SQL$erver的一些细微差别?
@Dennis - 说得好。"哪里 "并不是针对显示的那一列。所以截图并没有显示任何有用的东西。
sql
sql-server-2008
sql-like
Björn Karpenstein
Björn Karpenstein
发布于 2015-08-06
2 个回答
Madhivanan
Madhivanan
发布于 2015-08-06
已采纳
0 人赞同

我的猜测是,你可能有一些特殊字符作为某些值的起始字符。

看看这样的结果是什么

select len(modul) from table where col like '%foo%'
    
Tharif
Tharif
发布于 2015-08-06
0 人赞同

下面的格式会让你得到以 "IEC60601 "字母开头的结果。

IEC60601%