私はMSSQLに2つのテーブルを持っています。 Table2には、( '1,2,3')のようなTcode(varchar)、('45、2,35 'のような)CCode(varchar)、visitdate(datetime)のような列があります。訪問者は両方で共通です。'and' in where条件SQL Server
表1には、varchar commaseperatedコードがあります。
表2は、Int/SmallIntとして列タイプを持っています。 table1から、私は必要な変数を宣言しました。私は論理演算子を印刷する必要があり@condition変数に基づいて、ここで
declare @condition varchar(10)-- returns ('1,2,3')
declare @cdatetime datetime
declare @Ccodes varchar(500)
declare @Tcodes varchar(500)-- returns ('1,2,3')
----------------------------------------------
Here @condition returns 'And' or 'Or' strings
--------------------------------------------------
Table1:
select @cdatetime=Startdatetime,@Ccodes= Ccode, @condition=condition,@Tcodes=Tcode
from Table1
Table2:
select sum(rate) from table2 where visitdate>[email protected]
and Tcode in (@TCodes) 'PRINT @condition' Ccode in (@Ccodes))
:
はここでスクリプトです。
SQLでキーワードを印刷する方法はありますか?Visual Studio BI統合サービス(T-SQLクエリウィンドウ)を使用しています。
ありがとうございました。あなたは、文字列を作成して呼び出すために、動的SQLを使用することができ
一度に必要な条件は1つだけです。クエリの値は、「AND」と「OR」を使用すると変更されます。両方の状態を確認することはパフォーマンス上の問題です。その巨大なテーブル。 –
@InayathullahKhan SQLサーバーは、クエリを実行する前に条件を評価し、有効なwhere句の部分のみを使用します。したがって、 '@condition = 'AND''が見え、WHERE句のその部分を使用して、相手側がFALSEと評価されることがわかります。私の意見ではパフォーマンスに影響しないはずですが、テストするのが最善です。 – Tanner