1
我在postgreSQL中有一個表歷史記錄(id int,content xml)。其中一個id的XML內容如下PostgreSQL xpath選擇具有它最近的孩子日期屬性的元素
<history-data>
<history recorded-date="20110601">
<assignees>
<assignee>
<last-name>CIENA LUXEMBOURG</last-name>
</assignee>
</assignees>
<assignors>
<assignor execution-date="20110517">
<last-name>NORTEL NETWORKS LIMITED</last-name>
</assignor>
</assignors>
</history>
<history recorded-date="20110601">
<assignees>
<assignee>
<last-name>CIENA CORPORATION</last-name>
</assignee>
</assignees>
<assignors>
<assignor execution-date="20110527">
<last-name>CIENA LUXEMBOURG</last-name>
</assignor>
</assignors>
</history>
<history recorded-date="20090430">
<assignees>
<assignee>
<last-name>NORTEL NETWORKS</last-name>
</assignee>
</assignees>
<assignors>
<assignor execution-date="20090424">
<last-name>MAK, GARY</last-name>
</assignor>
<assignor execution-date="20090424">
<last-name>VELEZ, EDGAR</last-name>
</assignor>
</assignors>
</history>
</history-data>
在這裏,我想獲得最近的執行日期是最近的名稱。在這種情況下,我希望輸出爲CIENA CORPORATION,因爲它的執行日期是最近的。
我能拿到的第一個孩子用下面的代碼,但沒能獲得具有元件最近執行的最新
SELECT id, unnest(CAST(xpath('/history-data/history/assignees[1]/assignee/last-name/text()',content) AS text)::text[]) AS last-name
FROM history
WHERE id = 10
我如何能做到這一點任何想法?如果有多個元素具有相同的執行日期,那麼我想要xml樹中的第一個元素。
感謝。這解決了我的問題。 –