Quelle est la syntaxe T-SQL pour Si ceci ou cela alors que rien d'autre ne fait rien?

J'essaye de faire une condition où pour un certain ID, quand l'une ou l'autre de deux valeurs de deux tables différentes est plus grande qu'un nombre, alors je montrerai une rangée avec les deux valeurs. Sinon, je ne veux pas afficher de nouvelle ligne. Quelle est la syntaxe correcte pour cela?

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 

Vous avez juste besoin de l'append comme condition. Si votre condition where échoue pour une ligne donnée, cette ligne ne sera pas sélectionnée.

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

La réponse de @ vkp est probablement ce que vous voulez, mais la traduction littérale de la requête que vous avez écrite – sans utiliser les instructions de stream de contrôle – est la suivante:

 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); 

Cela ne returnnera rien du tout si l'un des loggings dans la jointure n'a pas Table1.Column1 > 2 ou Table2.Column2 > 2 , ou il returnnera tous les loggings.