2017-09-12 45 views
0

我有一個可以配置規則的表。例如:在SQL Server的where子句中的列中使用值

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 

感謝您的幫助。謝謝!

+0

你嘗試過這麼遠嗎?你不能「加入」這兩個表格,因爲它們之間沒有關係。你可以通過'動態SQL'中的'Rules'表遍歷'Rule Condition'來創建'Where'子句。 –

+0

規則有更多的可能性嗎?你將不得不列出一切給某人給你一個準確的答案。這將是地獄般的解決。 – justiceorjustus

+0

我想到的唯一選擇是使用動態SQL。想知道是否有更好的方法,我不知道。 – gdanton

回答

1

您可以使用動態SQL:

這是我認爲會幫助你很多的例子:

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

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

SET @SQL = @SQL+' '[email protected] 

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 
+0

非常感謝。我手頭有一個動態SQL選項;但是對於更直接的方式,因爲規則條件是實際數據的有效where子句而感到好奇。 – gdanton