2017-09-12 10 views
0

ルールを構成できるテーブルがあります。例:SQL Serverのwhere句の列内の値を使用

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

実際のデータと

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

そして、別のテーブルこの二つを結合すると、次の出力を取得する最も簡単な方法は何ですか?

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

あなたのお手伝いを助けてください。ありがとう!

+0

あなたがこれまでに試してみましたか?これら2つのテーブルには関係がないので、これらの2つのテーブルをジョインできません。 '動的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

関連する問題