2009-04-17 26 views
5

Bu sorgu başarısız:PostgreSQL bir işlev tarafından döndürülen bir diziden seçim yapabilir mi?

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

ERROR: syntax error at or near "[" 

Ancak bu bir tane çalışır:

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

Benim xpath ifadem her zaman yalnızca tek bir değer döndürür, ancak Postgres xpath işlevi bir dizi döndürür. Dizideki ilk değeri seçmek istiyorum. Subselect çalışırken, oldukça çirkin.

Neden ilk sorgu çalışmıyor ve bunu ikinci sorgudan yapmak için daha temiz bir yolu var mı?

cevap

7

: derece basit çözüm oldu

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

! Şüpheye düştüğümde, daha fazla parantez kullanın. – DNS

İlgili konular