我有一个输出“确定”的查询。
我想使用查询中的结果来运行另一个查询。
如果结果正常则不要运行。 如果是ERROR,则运行。
查询很慢,如果结果正常,我不想执行第二个查询。第二个查询检查错误。
我怎么能这样做?我在互联网上查了但是我不知道是否有这样的功能和它的名字。我不想使用嵌套查询或WITH表达式
谢谢!
答案 0 :(得分:1)
您可以将查询结果放入变量,然后使用IF...ELSE
进行检查declare @test varchar(10) = 'ok';
if @test != 'ok'
begin
--query if not 'ok'
end
else
begin
--query if 'ok', or you can remove `else` at all if not required
end
答案 1 :(得分:1)
使用Try and Catch进行错误处理,按照以下步骤执行您要执行的操作:
如果执行查询1,则查询2跳过,否则执行查询2,如果查询1中有任何错误:
if (empty($received_date)) {
$received_date= 'NULL';
}
答案 2 :(得分:0)
好吧,你可以创建一个变量来存储一个返回'OK'或'KO'(How to create a function with SQL Server)的函数的结果。
然后,您可以使用IF语句执行不同的查询 IF statement SQL Server
这可能是一个想法。
答案 3 :(得分:0)
将结果集捕获到变量中。还要确保您的条件返回一个或另一个且只返回一列
我添加了一个示例查询
declare @output VARCHAR(10)
SET @OUTPUT =
--sample query
(select case when SUM(s.SellingValue) = SUM(h.SellingValue) then 'OK' ELSE 'ERROR' END OUTPUT
from Missing_Sales s inner join Missing_Sales_TH h on s.Branch_no = h.Branch_no and s.date = h.Date)
BEGIN
IF @output = 'OK'
--sample query
SELECT * FROM Missing_Sales
ELSE
--sample query
SELECT * FROM Missing_Sales_TH
END