PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

PostgreSQL konwertuje tablicę zwróconą z funkcji do kolumn

czy możesz użyć podselekcji?

postgres=# select ar[1], ar[2] from (select string_to_array('a b c', ' ') ar) as sq;
 ar | ar 
----+----
 a  | b
(1 row)

To nadal wymaga wyraźnego wyodrębnienia każdej kolumny (tak jak już to zrobiłeś). Jeśli w tablicy jest więcej elementów niż wyodrębnionych, zostaną one utracone, a jeśli będzie ich mniej, wówczas brakujące kolumny będą po prostu NULL .

EDYCJA:Myślę, że owinąłbym całość w podwybór; wewnętrzny podselekcja generuje żądane wiersze , z zewnętrznym zaznaczeniem rzutującym wewnętrzne zapytanie na żądane kolumny :

SELECT subquery1.a, subquery1.b, subquery1.c, 
    myfunction_result[1], myfunction_result[2] 
FROM ( SELECT table1.a, table1.b, table1.c,
              MyFunction(table1.a, table1.b, table1.c) as myfunction_result
       FROM table1 INNER JOIN table2 using(b) 
       WHERE ... GROUP BY table1.a, table1.b, table1.c
) AS subquery1;

Wybory wewnętrzne i zewnętrzne będą prawidłowo skorelować table1 referencje.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy jest jakiś sposób, aby PostgreSQL nie zwijał interpunkcji i spacji podczas porównywania przy użyciu języka?

  2. Obsługa stronicowania ze zmieniającymi się porządkami sortowania

  3. Wyodrębnij rok z daty w PostgreSQL

  4. Jak określić typ MIME heroku?

  5. Wyzwalacz aktualizacji PostgreSQL