gpt4 book ai didi

用于返回递归值的 SQL 函数

转载 作者:行者123 更新时间:2023-12-04 04:38:06 27 4
gpt4 key购买 nike

我正在尝试创建一个返回递归值的函数,但出现语法错误。

CREATE FUNCTION getObs
(
@obs int
)
RETURNS
WITH ret2 AS(
SELECT *
FROM OBS
WHERE OBS_Id = @obs
UNION ALL
SELECT t.*
FROM OBS as t INNER JOIN
ret2 r ON t.OBS_Id = r.UnitId
)
SELECT *
FROM ret2 r
WHERE unity_id = 7

最佳答案

RETURNS指定函数的返回类型,之后你必须定义函数体,如下所示:

CREATE FUNCTION getObs
(
@obs int
)
RETURNS table -- <-- returns table so it's a table function
as
return -- <- here's actual return
(
WITH ret2 AS(
SELECT *
FROM OBS
WHERE OBS_Id = @obs
UNION ALL
SELECT t.*
FROM OBS as t INNER JOIN
ret2 r ON t.OBS_Id = r.UnitId

)
SELECT *
FROM ret2 r
WHERE unity_id = 7
)

这是一个例子 - sql fiddle demo

关于用于返回递归值的 SQL 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19379309/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com