2

与えられた:

CREATE TABLE xmltest(xtxt xml);

と:

INSERT INTO xmltest values ('<EMP><NAME>Mike</NAME><HIREDATE>12-FEB-96</HIREDATE></EMP><EMP><NAME>Bob</NAME><HIREDATE>13-AUG-97</HIREDATE></EMP><EMP><NAME>Paul</NAME><HIREDATE>17-JUN-94</HIREDATE></EMP><EMP><NAME>Jim</NAME><HIREDATE>01-JUN-94</HIREDATE></EMP>');

Postgres 9.2の基本機能を使用して、結果セットの行ごとに1つの名前である従業員名のみを返すSELECTステートメントをどのように記述しますか?それとも、それを行うためにPL / PGSQLで関数を作成する必要がありますか?

4

1 に答える 1

3

関数を使用して目的のフィールドを配列に抽出し、xpathそこからunnest組み込みを使用してこの配列を複数の行に分割できます。

SELECT unnest(xpath('//name', xtxt))
FROM   xmltest;

(この質問から少し借りました)

于 2012-12-28T14:25:16.710 に答える