根据先前的输出运行SQL查询

时间:2018-07-25 08:51:38

标签: sql

以下查询仅产生“ Operation is Success”,而我的目标是运行在IF TRUE条件下列出的“ Select”语句:

DECLARE @TOTAL int

Select @TOTAL = count(barcode) 
from domain_Media 
where ( (librarySlotNumber > -1) 
  AND (UPPER(volumePoolName) LIKE UPPER('scratch%')) 
  AND (id LIKE '05%' or id LIKE 'DX%') 
  AND (masterServerId = 17785613) )

IF (@TOTAL > 5)
BEGIN
  select * 
  from domain_Media 
  where (masterServerId = 17785613)
END

我要去哪里错了?

2 个答案:

答案 0 :(得分:1)

为什么不只使用一个查询?

select * 
from domain_Media 
where masterServerId = 17785613 and
      (select count(barcode) 
       from domain_Media 
       where librarySlotNumber > -1 and
             upper(volumePoolName) like upper('scratch%') and
             (id like '05%' or id like 'DX%') and
             masterServerId = 17785613
      ) > 5;

答案 1 :(得分:0)

为什么不根据第一个结果来限制第二个查询?

DECLARE @TOTAL int 
Select @TOTAL = count(barcode) 
from domain_Media
where ( (librarySlotNumber > -1) 
  AND (UPPER(volumePoolName) LIKE UPPER('scratch%')) 
  AND (id LIKE '05%' or id LIKE 'DX%') 
  AND (masterServerId = 17785613) ) 

select * from domain_Media where (masterServerId = 17785613) AND  @TOTAL > 5

IT可在SQL Server中工作