none
如何将若干结果集合并然后返回? RRS feed

  • 问题

  • 我想写这样一个函数,它返回一张表.

    这个表由结果集合并得到.但不知道结果集的个数.

    这种情况下,如何使用union呢?还是使用临时表? 如何让select结果集赋予一个表变量呢?

     

     

    2011年4月14日 4:14

答案

  • 我自己找到方法了.
    因为游标是全局的,所以避免使用.
    这里使用while解决了递归问题.
    还是使用了表变量,通过不断插入的方法.
    CREATE FUNCTION getAllSubOrgan (@number varchar(50))  
    RETURNS  @subTable TABLE
     (
        number varchar(50),
        lev int
    ) AS  
    Begin
    declare @lev Int
    set @lev = 1
    insert into @subTable select @number,@lev
    while @@ROWCOUNT >0
      Begin
    Set @lev = @lev + 1
        insert @subTable 
    select T.number , S.lev from SiteTable As T, @subTable As S
    where T.superOrgan = S.number and T.superOrgan<>T.number
    and T.type = '2' and S.lev = @lev -1
      End
    return 
    End 
    • 已标记为答案 msbyebye 2011年4月14日 5:01
    2011年4月14日 5:01