Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果This或This-then-other不起作用,那么T-SQL语法是什么?_Sql_Sql Server - Fatal编程技术网

如果This或This-then-other不起作用,那么T-SQL语法是什么?

如果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

我试图建立一个条件,对于某个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 
    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
,则此操作将不返回任何内容,或者它将返回所有记录