2014-03-26 41 views
0

只想知道是否可以對來自表格的一組數據進行模式匹配。從SQL中的表格對字符串進行模式匹配

像:

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

注意,Pattern始終是Column一子。因此使用like。是否可以在不使用存儲過程的情況下在數據庫級別執行此操作?

如果有幫助,我的RDBMS是MS SQL-服務器

編輯:

好吧,我有一個包含了一組數據的表像

PatternTable 
____________ 
test1 
test2 
test3 
test4 

現在,表Table有以下數據:

Table 
______ 
SomeDatatest4SomeData 
SomeDataSomeData 

現在,我可以用上述找到匹配的查詢:對於上面的查詢,這應該返回SomeDatatest4SomeData

+0

後更具體的東西,因爲它只是你會得到一般的猜測。顯示一些示例數據。 – Mihai

+1

你不能爲此使用'any'。 http://technet.microsoft.com/en-us/library/ms187074(v=sql.105).aspx – Bharadwaj

+0

是的,我明白這一點。只是想知道是否可以使用單個查詢。 –

回答

2

爲此,可以使用exists做:

select * 
from Table t 
where exists (select 1 
       from PatternTable pt 
       where t.Column like pt.Pattern 
      ); 
2
SELECT t.* 
FROM [Table] t 
INNER JOIN PatternTable p ON t.[Column] LIKE '%' + p.Pattern + '%'