SQL查询以针对特定字符串搜索模式

时间:2018-11-08 17:03:38

标签: sql-server regex matching

我目前正在处理一张表,其中包含数百个零件编号样式的列表,以供打折之用。 例如:

1) [FR]08-[01237]0[67]4E-%
2) _10-[01]064[CD]-____
3) F12-[0123]0[67]4C-%

我有一个字符串搜索条件:F10-1064C-02TY,并且我试图找出哪些模式与该特定字符串匹配。对于此示例,我的查询将返回第二个模式。目的是根据匹配的模式找到正确的零件折扣。

处理此类问题的最佳方法是什么?有没有简单而优雅的方法,或者这涉及到一些复杂的TSQL过程?

1 个答案:

答案 0 :(得分:0)

LIKE子句右侧的模式可以是任何表达式,其中包括表中的值。这意味着您可以在查询中使用样式表,即

SELECT PatternId, Pattern
FROM Patterns
WHERE 'F10-1064C-02TY' LIKE Pattern

您可以从此处构建-如果您的零件号存储在不同的表中,请使用LIKE子句作为连接标准来连接到该表,或者构建一个采用零件号参数的过程,或者满足您要求的任何其他方法