2009-04-17 9 views
5

To zapytanie nie powiedzie się:Czy PostgreSQL może wybrać z tablicy zwróconej przez funkcję?

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

ERROR: syntax error at or near "[" 

Ale to działa:

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

Moje wyrażenie XPath zawsze zwraca tylko jedną wartość, ale funkcja XPath Postgres zwraca tablicę. Chcę wybrać pierwszą wartość w tablicy. Podczas gdy podselekcja działa, jest dość brzydka.

Dlaczego pierwsze zapytanie nie działa i czy jest to lepszy sposób niż drugie zapytanie?

Odpowiedz

7

Jak ten temat:

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

To był nadzwyczaj prosto rozwiązanie! W razie wątpliwości użyj więcej nawiasów. – DNS

Powiązane problemy