如何利用 存储过程返回的值做条件?(急)

shijian0306 2008-05-12
大家好,想利用存储过程返回的值做条件,但是我没有办法在查询语句中调用到存储过程。
存储过程返回了2列department_id , departName.

select * from tdepartment where department_id in(
call procDepartSelect(0,1)
)
这样调用怎么都不行,请问大家该怎么做啊,下面是我的存储过程名
procDepartSelect(in parentId int,in depType int)
如何用临时表,该怎么做呢?
supercode 2008-05-12
如果procDepartSelect(0,1)内部逻辑简单的话,直接写掉好了
如果逻辑复杂的话,建函数来代替存储过程,好像sqlserver不支持子查询里有存储过程,但函数支持。希望下面的代码对你有用

/*测试语句*/
select * from petinfo where pet_id in  (  select * from  fun_test(1)  )


/*建立函数*/
CREATE   FUNCTION   fun_test   (  @pid int    )  
  RETURNS   @TempTable TABLE  
        (  
          pet_id           int 
         
        )  
  AS  
  BEGIN  
        INSERT   @TempTable 
select diary_pet_ID from petdiary  /*where @pid=xx */
        RETURN  
  END   

shijian0306 2008-05-16
哥们儿,谢谢,哦,忘记说了,我的数据库是MySq,我已经用另外一种方式解决了。
存储过程中的逻辑是有些复杂,先这么用着。
supercode 2008-05-17
哈哈 你用另外什么方式解决的
给大家分享一下
Global site tag (gtag.js) - Google Analytics