比较两个LIKE条件

时间:2013-06-06 19:33:00

标签: sql-server-2008 sql-like

这些LIKE条件是否相同:

Phone LIKE '%[()-. ]%'

Phone LIKE '%(%' OR Phone LIKE '%-%' OR Phone LIKE '%.%' OR Phone LIKE '% %'

我从第一个得到的结果少于第二个结果。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您获得不同结果的原因是-[]中使用时表示一系列字符。它认为您要求((space)).之间的任何字符。尝试使用ESCAPE子句:

Phone LIKE '%[()=-. ]%' ESCAPE '='

这指示SQL服务器将=字符用作转义字符,然后将=放在-之前,-不再被解释为范围指标。

我从未使用ESCAPE条款,因此您可能需要进行试验。但这是正确的想法。

文档:http://msdn.microsoft.com/en-us/library/ms179859.aspx