我有一个我认为应该是这样的查询:
select *
from Requesters
where CITIZEN_STATUS = 'OS-IE ';
字段CITIZEN_STATUS,其数据类型为varchar(15),具有此特定值的尾随空格。我已经将它粘贴到Notepad ++中并使用十六进制编辑器查看它,最终的空间确实是0x20。
要使查询起作用,我必须这样写:
select *
from Requesters
where CITIZEN_STATUS like 'OS-IE%';
所以,显然,我有一个解决方法,问题并不紧急。但我真的很想知道为什么第一个查询无法达到我的预期。有没有人有任何想法?
我应该提到我正在使用SQL Server 2005,并且可以根据需要提供有关配置的更多信息。
答案 0 :(得分:0)
在MySQL 5中,此查询有效。但是,它不区分尾随空格。查询匹配'OS-IE'以及'OS-IE'。在SQL Server 2005中,您可以使用定义行尾的正则表达式。对此的正确字符是美元符号'$',表示您确实需要空格。见http://msdn.microsoft.com/en-us/magazine/cc163473.aspx