如何利用 存储过程返回的值做条件?(急)
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
哈哈 你用另外什么方式解决的
给大家分享一下 |