2016-04-14 21 views
3

特定のIDに対して、2つの異なるテーブルの2つの値のいずれかが数値より大きい場合、両方の値を持つ行を表示します。それ以外の場合、私は新しい行を表示したくありません。これの正しい構文は何ですか?T-SQLの構文は何ですか?これは何ですか?

if(select 
     a.Column1 > 2 or 
     b.Column2 > 2 
    from 
     Table1 a join Table2 b on a.ID = b.ID) 
begin 
select 
    a.Column1, 
    b.Column2 
from 
    Table1 a join Table2 b on a.ID = b.ID) 
end 

else 
begin 
    Don't Select 
end 

答えて

2

whereという条件で追加するだけです。指定された行に対して条件が失敗した場合、その行は選択されません。 VKPの答え@

select 
    a.Column1, 
    b.Column2 
from 
    Table1 a join Table2 b on a.ID = b.ID 
where a.column1 > 2 or b.column2 > 2 
0

何をしたい、おそらくですが、あなたが書かれているクエリの直訳 - 制御フロー文を使用せず - これです:

select 
    a.Column1, 
    b.Column2 
from 
    Table1 a join Table2 b on a.ID = b.ID 
where exists (select 1 from Table1 c join Table2 d on c.ID = d.ID where c.Column1 > 2 or d.Column2 > 2); 

これは、どちらかの意志のリターン結合内のレコードのいずれかにTable1.Column1 > 2またはTable2.Column2 > 2がない場合は、まったく何も、またはすべてのレコードを返します。