如何匹配SQL Server中的复杂模式?

时间:2013-09-29 16:45:17

标签: sql-server regex tsql

我有一个允许格式的表,我需要能够根据字符串进行查找。一些示例格式是:

  • ^。^。testdomain.com
  • ^。testdomain.com
  • ^ QWERTY ^ .testdomain.com

我需要根据以下示例输入返回一个或多个匹配行:

  • device.name.testdomain.com将返回第一种和第二种格式
  • johnqwertysmith.testdomain.com将返回所有格式

不幸的是,字符'^'被固定为通配符,这是一个我无法改变的约束。

我希望也许正则表达式可以在这里拯救我,也许使用格式作为模式并将其与输入进行比较。正则表达式不是我过去使用过的东西,所以我不确定它的功能。如果不这样做,还有其他方法可以执行此查找吗?

1 个答案:

答案 0 :(得分:1)

像这样:

SELECT *
FROM yourTable
WHERE @INPUT LIKE REPLACE(yourTable.savedFormat, '^', '%')

这不允许您利用已保存的格式列上的任何索引,但我怀疑无论如何都无法满足这些要求。