SQL中表的字符串模式匹配

时间:2014-03-26 13:40:27

标签: sql sql-server

只是想知道是否可以对表中的一组数据进行模式匹配。

像:

select * from Table where Column like any(select Pattern from PatternTable)

请注意,Pattern始终是Column的子字符串。因此使用喜欢。是否可以在不使用存储过程的情况下在数据库级别执行此操作?

如果有帮助,我的RDBMS是MS SQL-Server

修改

好吧,我有一个包含一组数据的表,比如

PatternTable
____________
test1
test2
test3
test4

现在,表Table具有以下数据:

Table
______
SomeDatatest4SomeData
SomeDataSomeData

现在,我可以使用上面提到的查询来查找匹配项:对于上述查询,这应该返回SomeDatatest4SomeData

2 个答案:

答案 0 :(得分:2)

您可以使用exists

执行此操作
select *
from Table t
where exists (select 1
              from PatternTable pt
              where t.Column like pt.Pattern
             );

答案 1 :(得分:2)

SELECT t.* 
FROM [Table] t
INNER JOIN PatternTable p ON t.[Column] LIKE '%' + p.Pattern + '%'