2009-04-17 3 views
5

このクエリは失敗します。PostgreSQLは関数から返された配列から選択できますか?

SELECT xpath('/my/xpath/expr', my_xml)[1] FROM my_table 

ERROR: syntax error at or near "[" 

をしかし、この1つは動作します:

SELECT x[1] FROM 
    (SELECT xpath('/my/xpath/expr', my_xml) as x FROM my_table) as ss 

私のXPath式は常に単一の値のみを返しますが、PostgresのXPath関数は、配列を返します。配列の最初の値を選択します。 subselectが動作する間、それはかなり醜いです。

なぜ最初のクエリが機能しないのですか。これを行うためのクリーンな方法は2番目のクエリよりもなぜですか?

これはどのように

答えて

7

:非常に単純な溶液であった

SELECT (xpath('/my/xpath/expr', my_xml))[1] FROM my_table; 
+1

!私は、疑問があるときは、より多くの括弧を使用すると思います。 – DNS

関連する問題