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
Sql server 一个接一个地执行多个select查询_Sql Server_Stored Procedures - Fatal编程技术网

Sql server 一个接一个地执行多个select查询

Sql server 一个接一个地执行多个select查询,sql-server,stored-procedures,Sql Server,Stored Procedures,我有六个不同where条件的select查询,如果第一个select查询返回null,它应该检查下一个select查询,然后执行。在SQL server中将其作为存储过程编写的最佳方法是什么。如果我正确理解了您的问题,那么您可以像下面的示例一样实现这一点。你可以这样走 if NOT EXISTS (SELECT TOP(1) 'x' FROM table WHERE id =@myId) BEGIN IF NOT EXISTS (SELECT TOP(1) 'x' FROM table2

我有六个不同where条件的select查询,如果第一个select查询返回null,它应该检查下一个select查询,然后执行。在SQL server中将其作为存储过程编写的最佳方法是什么。

如果我正确理解了您的问题,那么您可以像下面的示例一样实现这一点。你可以这样走

if NOT EXISTS (SELECT TOP(1) 'x' FROM table WHERE id =@myId) 
BEGIN
  IF NOT EXISTS (SELECT  TOP(1) 'x' FROM table2 WHERE id = @myId2) 
  BEGIN
    IF NOT EXISTS (SELECT TOP(1) 'x' FROM table 3 WHERE id = @myID3)
    BEGIN
    END 
  END 

END 

您可以使用@rowcount

DECLARE @OperatorID INT = 4, @CurrentCalendarView VARCHAR(50) = 'month';
declare @t table (operatorID int, CurrentCalendarView varchar(50));
insert into @t values (2, 'year');

    select operatorID - 1, CurrentCalendarView from @t where 1 = 2
if (@@ROWCOUNT = 0) 
begin
    select operatorID + 1, CurrentCalendarView from @t where 1 = 1
end

同一表格的不同条件?如果第一个查询给出了结果,那么不执行第二个查询和以后的查询有什么意义?以可能在六次不同的会议上发言为代价?查询是否至少按照最有可能首先返回结果的顺序排列?是的,针对同一个表。这里的要点类似于优先级检查,如果第一个给出的结果不需要第二个检查,那么接下来就是优先级检查。除了这不会返回任何结果是,@AaronBertrand我想他可以有条件地这样做你的想法是什么?@RajatJaiswal这里你的选择查询选择一行但我的选择查询有10多行写选择查询6次看起来很奇怪我们可以只使用IF NOT EXISTS块中的where条件吗?如果你能将你现有的查询和数据共享给我,我将不胜感激更好地理解你的问题。