我想写一个存储过程,在这个存储过程里面返回多个结果集,比如有这个一个表t_user
我想即返回user表的记录数(select count(1) from t_user),
又想返回年龄大于20的user(select * from t_user where age>20),
又想返回id=1的user(select * from t_user where id=1)
应该怎么写存储过程呢?
以上条件只是打个比方,就是想要同时返回一条记录和多条记录的情况。

解决方案 »

  1.   

    你直接在存储过程中执行这三个 select 就行了。
    程序中它会返回三个 recordset,逐一访问即可。
      

  2.   

    elect 'a','b',count(1) from t_user),
    union all
    select col1,col2,col3 from t_user where age>20),
    union all
    select col1,col2,col3 from t_user where id=1
      

  3.   

    那我取的时候怎么取啊?,我使用mybatis做ORM,取的时候用什么区别每一个结果集呢?
      

  4.   

    这个建议在相关语言的版块中咨询。 比如ADO.NET 中则可以用 NextRecordset 方法得到当前存储过程返回的多个recordset中的下一下。