Sql server 2008 使用LIKE的表驱动WHERE子句

Sql server 2008 使用LIKE的表驱动WHERE子句,sql-server-2008,where-clause,sql-like,Sql Server 2008,Where Clause,Sql Like,我所拥有的: WHERE (dbo.Field1 LIKE '% contact made %' OR dbo.Field1 LIKE '% talked to %') 我需要像下面这样的东西: WHERE (dbo.Field1 LIKE IN (SELECT Pattern FROM PatternTable)) PatternTable ------------ % contact made % % talked to % % called in % % spoke with % %

我所拥有的:

WHERE (dbo.Field1 LIKE '% contact made %' OR dbo.Field1 LIKE '% talked to %')
我需要像下面这样的东西:

WHERE (dbo.Field1 LIKE IN (SELECT Pattern FROM PatternTable))

PatternTable
------------
% contact made %
% talked to %
% called in %
% spoke with %
% spoke to %


类似的问题是。

看起来您需要使用动态sql:


看起来您需要使用动态sql:

在Oracle中,您可以执行以下操作

SELECT * FROM dbo
JOIN PatterTable ON dbo.Field LIKE PatterTable.pattern
我认为这在SQL Server中也可以使用。

在Oracle中,您可以这样做

SELECT * FROM dbo
JOIN PatterTable ON dbo.Field LIKE PatterTable.pattern

我认为这也适用于SQL Server。

完美。非常感谢你!是的,这不太明显。当我第一次看到这样的东西时,我感到奇怪的惊讶。现在我看到了语法和一个工作示例的结果,这非常有意义。和参加约会差不多,没错。一旦你看到它,它就有了完美的意义。完美。非常感谢你!是的,这不太明显。当我第一次看到这样的东西时,我感到奇怪的惊讶。现在我看到了语法和一个工作示例的结果,这非常有意义。和参加约会差不多,没错。一旦你看到它,它就非常有意义。