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

