LIKE [0-9]比LIKE%慢得多

时间:2018-11-20 16:35:53

标签: sql sql-server

我有一个比较复杂的视图,可以选择一堆物品及其剩余库存量。我想将结果集缩小到符合模式的项目代码,以便过滤掉不需要的项目。

我要包含的商品代码的格式为4位数字,后跟一个连字符,再加上另一个4位数字

function someFilterFunction(entry) {
  return !entry.untracked;
}
myMapOfStuff = myMapOfStuff.filter(someFilterFunction);

我还希望包含格式为13位数字(ISBN以978开头)的项目编号,后跟一个连字符,再另一个两位数字。

1234-0001

最初,我计划使用以下代码,该代码将与所有包含连字符的商品代码匹配。

9781234567890-01

不幸的是,并非我们所有的商品代码都是统一的,人们偶尔在不符合上面两种公认格式的商品中使用连字符,因此我切换到以下内容。

SELECT * 
FROM Vw_Stock 
WHERE ItemCode LIKE '%-%'

查询最初花费1秒,现在大约花费3分50秒。为什么要花这么长时间?对我来说,有没有一种更有效的方法来查询所标识的商品格式?

0 个答案:

没有答案