SQL 根据特定字符串搜索模式的查询
SQL query to search for patterns against a specific string
我目前正在处理一个 table,其中包含用于折扣目的的数百个零件号模式的列表。
例如:
1) [FR]08-[01237]0[67]4E-%
2) _10-[01]064[CD]-____
3) F12-[0123]0[67]4C-%
我有一个字符串搜索条件:F10-1064C-02TY,我正在尝试找出与该特定字符串匹配的模式。对于此示例,我的查询将 return 第二个模式。 objective是根据匹配的模式找到正确的零件折扣。
处理此类问题的最佳方法是什么?是否有一种简单而优雅的方法,或者这是否涉及一些复杂的 TSQL 过程?
LIKE 子句右侧的模式可以是任何表达式,其中包括 table 中的值。这意味着您可以在查询中使用您的模式 table 即
SELECT PatternId, Pattern
FROM Patterns
WHERE 'F10-1064C-02TY' LIKE Pattern
您可以从这里构建 - 如果您的部件号存储在不同的 table 中,请使用 LIKE 子句作为连接条件连接到那个 table,或者构建一个采用零件号参数,或其他符合您要求的参数。
我目前正在处理一个 table,其中包含用于折扣目的的数百个零件号模式的列表。 例如:
1) [FR]08-[01237]0[67]4E-%
2) _10-[01]064[CD]-____
3) F12-[0123]0[67]4C-%
我有一个字符串搜索条件:F10-1064C-02TY,我正在尝试找出与该特定字符串匹配的模式。对于此示例,我的查询将 return 第二个模式。 objective是根据匹配的模式找到正确的零件折扣。
处理此类问题的最佳方法是什么?是否有一种简单而优雅的方法,或者这是否涉及一些复杂的 TSQL 过程?
LIKE 子句右侧的模式可以是任何表达式,其中包括 table 中的值。这意味着您可以在查询中使用您的模式 table 即
SELECT PatternId, Pattern
FROM Patterns
WHERE 'F10-1064C-02TY' LIKE Pattern
您可以从这里构建 - 如果您的部件号存储在不同的 table 中,请使用 LIKE 子句作为连接条件连接到那个 table,或者构建一个采用零件号参数,或其他符合您要求的参数。