+ -
当前位置:首页 → 问答吧 → 存储过程返回了俩个结果集,如果才能返回一个?

存储过程返回了俩个结果集,如果才能返回一个?

时间:2011-10-03

来源:互联网

SQL code

BEGIN
    SET @RS=0;
    SELECT *,@RS:=COUNT(id)
    FROM X
    WHERE type = 2

 IF (@RS= 0) THEN
        SELECT * FROM X
 End IF;
END




如上代码,当 @RS= 0 时,返回了俩个结果集。如何只返回一个?

作者: zhmvb   发布时间: 2011-10-03

看不懂你的需求是什么, 举例说明。

作者: ACMAIN_CHM   发布时间: 2011-10-03

本意:先查询type=2的数据,有则返回,无责返回 type 等于任何值的数据。

结果发现上面的代码当@RS=0时,不仅返回了第一个SELECT的结果集(空结果集),又返回了“SELECT * FROM X”的结果集,这样就返回了俩个结果集。

我想得到的是不管在type=2是否有数据的情况下,只返回一个结果集供上面的程序分析。
请教如何实现?

作者: zhmvb   发布时间: 2011-10-03


BEGIN
  SET @RS=0;
  SELECT COUNT(id) into @RS
  FROM X
  WHERE type = 2

 IF (@RS= 0) THEN
  SELECT * FROM X
 else
  SELECT * FROM X WHERE type = 2
 End IF;
END

作者: ACMAIN_CHM   发布时间: 2011-10-03

相关阅读 更多