我有一个表(DataTable),其中一列包含以下列中的数据:
DataColumn
ABCD
ABCE
ABCF
ABXY
我有另一个表(MatchTable),它包含一个模式列和值列,可用于根据匹配从DataTable中获取匹配的行:
MatchPattern Value
AB% 1
我想从结果集中排除ABCE行,并且我不想在我的匹配表中为ABCD%,ABCF%等设置行,因为ABCE是规则的例外。我的模式可能是AB [^ C]%,但这将排除所有ABC,我只想排除ABCE。这个的sql是:
SELECT D.DataColumn, P.Value
FROM MatchTable M
INNER JOIN DataTable D ON D.DataColumn LIKE M.Pattern
我知道我可以在我的匹配表中添加另一个列,例如ExcludePattern,其中包含以下内容:
MatchPattern ExcludePattern Value
AB% ABCE 1
SELECT D.DataColumn, P.Value
FROM MatchTable M
INNER JOIN DataTable D ON D.DataColumn LIKE M.MatchPattern
AND D.DataColumn NOT LIKE M.ExcludePattern
我想知道是否有办法创建一个类似的模式,以匹配除ABCE之外的所有AB在一个模式中?基本上,这可以使用内置的方式完成,还是必须实现正则表达式?
答案 0 :(得分:0)
在单一的LIKE模式中绝对没有办法做你想做的事。