如果This或This-then-other不起作用,那么T-SQL语法是什么?
我试图建立一个条件,对于某个ID,当来自两个不同表的两个值中的任何一个大于一个数字时,我将显示一个包含这两个值的行。否则,我不想显示任何新行。正确的语法是什么如果This或This-then-other不起作用,那么T-SQL语法是什么?,sql,sql-server,Sql,Sql Server,我试图建立一个条件,对于某个ID,当来自两个不同表的两个值中的任何一个大于一个数字时,我将显示一个包含这两个值的行。否则,我不想显示任何新行。正确的语法是什么 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
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
您只需要将其添加为
where
条件。如果给定行的where
条件失败,则不会选择该行
select
a.Column1,
b.Column2
from
Table1 a join Table2 b on a.ID = b.ID
where a.column1 > 2 or b.column2 > 2
@vkp的答案可能是您想要的,但是您编写的查询的直译(不使用控制流语句)是:
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
,则此操作将不返回任何内容,或者它将返回所有记录