我正在尝试将这两个查询的结果合并到同一个答案中。当我试图将它们组合起来时,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语句,因此它只在一个结果中显示多个查询。
答案 0 :(得分:1)
更改
的所有实例and Machine_name = 'SLA1' -- or 3
到
and machine_name in ('SLA1', 'SLA3')
答案 1 :(得分:0)
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')
)