PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL преобразуващ масив, върнат от функция в колони

можете ли да използвате подизбор?

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

Това все още изисква изрично извличане на всяка колона (както вече правите). Ако в масива има повече елементи от извлечените, те ще бъдат загубени, а ако са по-малко, тогава липсващите колони просто ще бъдат NULL .

РЕДАКТИРАНЕ:Мисля, че бих обвил цялото нещо в подизбор; вътрешният подизбор генерира желаните редове , като външната селекция проектира вътрешната заявка в желаните колони :

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;

Вътрешният и външният избор ще корелират правилно table1 препратки.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблеми с командата postgresql COPY с Rails на различен сървър

  2. Важна ли е позицията на колоната с идентификатор в Postgresql?

  3. Ruby 'pg' gem, свързващ грешно копие на libpq.5.dylib (на OSX)

  4. libpqxx v12 - динамично обвързване на векторни стойности към подготвен израз (алтернатива на извикването)

  5. java.lang.ClassNotFoundException:org.postgresql.Driver, Android