値を再実行する関数を作成しようとしています。
私の関数には、次のスクリプトがあります。
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
それが1
行RightsMUTを持っているcozeを返したいです
どうすればこれを行うことができますか?私は2でそれをやろうとしましたWith
が、oracleはまだ2をサポートしていません。