/*
 Create By mugua604
 找子结点
*/
CREATE TABLE tabe1(
    col1 varchar(2),
    col2 nvarchar(2))
INSERT tabe1
SELECT 'a','b' UNION ALL
SELECT 'b','c' UNION ALL
SELECT 'c',''  UNION ALL
SELECT 'd','e' UNION ALL
SELECT 'b','d' 
DECLARE @col nvarchar(20)
SET @col = N'a'
;WITH
tabs AS(
    SELECT * FROM tabe1
    WHERE col1 = @col
    UNION ALL
    SELECT a.*
    FROM tabe1 a, tabs b
    WHERE a.col1 = b.col2
)
SELECT * FROM tabsdrop table tabe1

解决方案 »

  1.   

    returns @t_dep table(depno varchar(20),dlevel int) 
    你的涵数返回值表里面有个2个字段..

    fpc_enrol_check.depno in 

        f_depno(select depno from auduser where auduser.userno = :userno ) 

    fpc_enrol_check.depno in..是一个字段...
    一个字段后面用IN的话,,肯定是在查询一个字段的集合里面,,,怎么会是2个字段的集合里面呢..
    好好检查一下吧..
      

  2.   

    觉得应该返回表里面改成一个字段..returns @t_dep table(depno varchar(20)) 试试