Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 在一个答案中组合两个查询(同一表格)_Sql_Sql Server_Join_Jdbc - Fatal编程技术网

Sql 在一个答案中组合两个查询(同一表格)

Sql 在一个答案中组合两个查询(同一表格),sql,sql-server,join,jdbc,Sql,Sql Server,Join,Jdbc,我试图将这两个查询的结果合并到同一个答案中。当我尝试合并它们时,If exists会给我带来问题。我该怎么做 问题1 IF EXISTS (select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name= 'SLA1') BEGIN select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name='SLA1' END

我试图将这两个查询的结果合并到同一个答案中。当我尝试合并它们时,If exists会给我带来问题。我该怎么做

问题1

IF EXISTS (select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name=
'SLA1')
BEGIN
    select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name='SLA1'
END
ELSE
  select top 1 * from jobs where Scheduled_Time = (select min(Scheduled_Time) from Jobs 
  where status='IDLE' and type='SLA' and Machine_Name='SLA1')
问题2

if exists (select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name=
'SLA3')
BEGIN
   select * from jobs where status='BUILDING' and Type='SLA' and Machine_Name='SLA3'
END 
ELSE

这些查询不相关,我不希望它们相互依赖。我想知道是否有类似于union语句的方法来连接它们,这样它就可以在一个结果中显示多个查询

更改的所有实例

and Machine_name = 'SLA1'  -- or 3


我感谢你的意见。然而,这并不是我想要的工作方式。当某一机器类型的状态为“未生成”(例如sla3未生成),而SLA1为“生成”时,or语句会导致其无法到达else语句。如有任何帮助或建议,将不胜感激!我感谢你的意见。但是,此查询不起作用,因为如果一台机器(例如SLA3的状态为空闲,SLA1的状态为正在生成),它只显示SLA1,因为这两台机器在if exists语句中连接。这些查询可以是单独的,并且可以通过一个简单的关键字(如JOIN或and)组合在一起吗?任何帮助或建议都将不胜感激!
and machine_name in ('SLA1', 'SLA3')
IF EXISTS 
    SELECT * 
    FROM jobs 
    WHERE status = 'BUILDING' AND Type = 'SLA' 
      AND (Machine_Name = 'SLA1' OR Machine_Name = 'SLA3')
BEGIN
    SELECT * 
    FROM jobs 
    WHERE status = 'BUILDING' AND Type = 'SLA' 
      AND (Machine_Name = 'SLA1' OR Machine_Name = 'SLA3')
END
ELSE
  SELECT TOP 1 * 
  FROM jobs 
  WHERE Scheduled_Time = 
  (
    SELECT MIN(Scheduled_Time) 
    FROM Jobs 
    WHERE status = 'IDLE' AND type = 'SLA' 
      AND (Machine_Name = 'SLA1'  OR Machine_Name = 'SLA3')
  )