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