在SQL Server的where子句中的列内使用值

时间:2017-09-12 20:51:51

标签: sql sql-server-2012

我有一个可以配置规则的表。例如:

Rule_ID Rule_Condition
1       cust_no=10 and cust_name='John'
2       cust_no=20 or cust_name='Alex'
3       cust_no=40

另一张包含实际数据的表

 Cust_No Cust_Name
 10      John
 10      Rob
 20      Dave
 20      Alex
 30      Steve

连接这两个并获得以下输出的最简单方法是什么?

Rule_Id Cust_No Cust_Name
1       10      John
2       20      Dave
2       20      Alex

感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用动态SQL:

以下是一个我认为会对您有所帮助的例子:

DECLARE @SQL varchar(256), @Table sysname;

SET @SQL='SELECT * FROM'; SET @Table = 'Production.Product'

SET @SQL = @SQL+' '+@Table

PRINT @SQL     -- for debugging dynamic SQL prior to execution of generated static code

EXEC (@SQL)    -- Microsoft dynamic SQL execution - SQL Server 2005 execute dynamic SQL