2017-05-16 14 views
0

テーブルにはという名前の1つの列があります。タイプは、2つの条件をマージする方法はありません。マージ条件のWHERE句の式

ベーステーブルここでクローズタイプが2または3、次いで2である場合@typeは1のみ1,4,5型が、選択されたときに、1型および2,3-条件をマージする方法

select Amount,Type,IsVisibleToCustomer,Status from LiveCustomerTransaction 


declare @Type int=0; 

[email protected]=1 

select * from LiveCustomerTransaction where Type in (1,4,5) 

[email protected]=2,3 

select * from LiveCustomerTransaction where [email protected] 

または3が選択される。私は、これはあなたが探しているものであると考えてい

+0

を試みることができますか? –

+0

あなたは@Type = 2,3のように設定できないintとして@Typeを定義しました。 –

+0

@devil_coder、あなたの返信ありがとう、はい私はint型でカンマ区切り文字列を配置することはできません知っている。ここでの入力は1または3または2です – shamim

答えて

1

この中
select * from LiveCustomerTransaction 
where (@Type=1  and Type in (1,4,5)) 
or (@Type in (2,3) and Type in (2,3)) 

は、2と3は、交換可能です(そのタイプは、両方が2または3のいずれかである必要があり、必ずしも@Typeと同じではありません)。あなたはもう少し厳しいことを意味している場合、それはこのようになります。

select * from LiveCustomerTransaction 
where (@Type=1  and Type in (1,4,5)) 
or (@Type in (2,3) and [email protected]  ) 
0

あなたが ``場所(1,4,5、@Type)を入力し、次のクエリ

select * 
from LiveCustomerTransaction 
WHERE (@Type=1 and Type in (1,4,5)) 
     OR (@Type in (2,3) and Type = @Type) 
関連する問題