1
我正在尝试创建一个函数来重新创建一个值。从With子句返回一行
在我的功能我有这样的脚本:
WITH t_new AS
(
SELECT PersIDOLD, PersIDNEW, RightsMUT,
SUM(gap) over(ORDER BY PersIDOLD, PersIDNEW) grp
FROM
(
SELECT h1.*,
CASE
WHEN h1.PersIDNEW = lag(h1.PersIDNEW)
over(ORDER BY h1.PersIDOLD, h1.PersIDNEW)
OR h1.PersIDOLD = lag(h1.PersIDOLD)
over(ORDER BY h1.PersIDOLD, h1.PersIDNEW)
THEN 0
ELSE 1
END gap
FROM HelpTable1 h1
)
)
SELECT PERSIDNEW, RIGHTSMUT
FROM t_new
WHERE grp =
(
SELECT grp FROM t_new WHERE PersIDNEW = 12 -- going to be a variable
)
回报是这样的:
http://img59.imageshack.us/img59/6733/tablei.gif
现在我想回到row 3
coze它在排1
RightsMUT
我该怎么做? 我试图用2 With
来做,但是oracle还不支持2。
这并不返回任何结果,但我找到了一种方法怎么办呢... 这很简单:/ – domiSchenk 2010-05-21 11:02:23
好吧,如果你解决了问题,或者更新问题以显示答案(你可能会收到一些评论),或者将它作为你自己问题的答案发布。 – Unreason 2010-05-21 12:41:40