mssql检查select语句是否有行,如果有,则执行相同的select语句

nx7onnlm  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(290)

我想在存储过程中执行select语句,但是在执行之前,我必须知道它是否有行。如果没有,我必须跳转到指定的标签,并设置输出。我目前的方法工作得很好,但是我需要在几个过程中使用更多的方法,我想知道我是否可以在不重复代码的情况下(不使用ctrl+c,ctrl+v)完成这项工作(这只是一个示例代码,不是我真正的代码)

IF EXISTS (
        SELECT *
          FROM sample s
          INNER JOIN sample2 s2 ON s.Id = s2.sId
          WHERE s2.number = @input
        )
        BEGIN
            INSERT INTO @Temp
            SELECT *
              FROM sample s
              INNER JOIN sample2 s2 ON s.Id = s2.sId
              WHERE s2.number = @input
        END
    ELSE
        BEGIN
            SET @noresult = 1;
            GOTO label;
        END

谢谢你的帮助!

h79rfbju

h79rfbju1#

为什么不把table装上然后检查一下呢?

INSERT INTO @Temp
    SELECT *
    FROM sample s JOIN
         sample2 s2 ON s.Id = s2.sId
    WHERE s2.number = @input;

IF NOT EXISTS (SELECT 1 FROM @temp)
BEGIN
    SET @noresult = 1;
    GOTO label;
END;

如果 @noresult 所有的table都是一样的,你只能有一张 if 在加载了一堆临时表之后。

相关问题