下面这个是MS sql的函数
返回一个table类型
我想在转到mysql下使用
可是他一直在返回类型上面报错(参数我已去掉@)CREATE FUNCTION f_Cid(@ID int) RETURNS @t_Level TABLE(ID int,Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO
返回一个table类型
我想在转到mysql下使用
可是他一直在返回类型上面报错(参数我已去掉@)CREATE FUNCTION f_Cid(@ID int) RETURNS @t_Level TABLE(ID int,Level int)
AS
BEGIN
DECLARE @Level int
SET @Level=1
INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
AND b.Level=@Level-1
END
RETURN
END
GO
可是怎么样取出在存储过程中select出来的结果集
如果是其它存储过程中,你可以使用生成的临时表。
就如我上面的那个函数那样INSERT @t_Level SELECT @ID,@Level
WHILE @@ROWCOUNT>0
BEGIN
SET @Level=@Level+1
INSERT @t_Level SELECT a.ID,@Level
FROM tb a,@t_Level b
WHERE a.PID=b.ID
你只能创建一个临时表,把记录放到这个表中!或许你可以看一下这个贴了。
http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/02/4142971.aspx