0
最後一個條目我已經表命名XMLTYPE的SALARIES_LOG數據這樣的每一行中:甲骨文的XQuery - 選擇滿足條件
<pay_rise event_id="511"><employee_id>1</employee_id> ... </pay_rise>
<pay_rise event_id="512"><employee_id>2</employee_id> ... </pay_rise>
<pay_rise event_id="513"><employee_id>1</employee_id> ... </pay_rise>
<pay_rise event_id="514"><employee_id>3</employee_id> ... </pay_rise>
<pay_rise event_id="515"><employee_id>1</employee_id> ... </pay_rise>
<pay_rise event_id="516"><employee_id>2</employee_id> ... </pay_rise>
對於每個僱員標識值,如果該值超過一個條目,我需要獲得最後一個條目。在示例數據將是:
<pay_rise event_id="515"><employee_id>1</employee_id></pay_rise>
<pay_rise event_id="516"><employee_id>2</employee_id></pay_rise>
注意,我不需要爲EMPLOYEE_ID = 3項,因爲只有一個這樣的條目。
使用XQuery可以得到這樣的結果嗎?我很接近,但還是堅持了:
SELECT XMLQuery(
'for $d in ora:view("SALARIES_LOG")/pay_rise,
$e in ora:view("SALARIES_LOG")/pay_rise
where $d/employee_id = $e/employee_id and $d/@event_id < $e/@event_id
return
<pay_rise>{$e/@event_id}
<employee_id>{$d/employee_id/text()}</employee_id>
</pay_rise>'
RETURNING CONTENT) FROM dual;
這給了我:
<pay_rise event_id="513"><employee_id>1</employee_id></pay_rise> -> unwanted entry
<pay_rise event_id="515"><employee_id>1</employee_id></pay_rise>
<pay_rise event_id="516"><employee_id>2</employee_id></pay_rise>
<pay_rise event_id="515"><employee_id>1</employee_id></pay_rise> -> unwanted & duplicated entry
謝謝,現在它已經解決了。 :) – user1969391 2013-04-11 19:20:40