Как передать выходные данные запроса select в виде списка столбцов другому запросу select в postgresql?

#postgresql

#postgresql

Вопрос:

Я пытаюсь передать выходные данные запроса select в виде списка столбцов другому запросу select.

 select ARRAY_TO_STRING(ARRAY(SELECT distinct COLUMN_NAME::VARCHAR(50)
FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='products' AND 
COLUMN_NAME NOT IN ('code') ), ', ');
  

Приведенный выше запрос выдаст выходные данные, подобные приведенным ниже,

 array_to_string      
---------------------------  
name, price, manufacturer
  

Теперь мне нужно передать этот вывод в виде списка столбцов другому запросу select. Итак, я попробовал так,

 select ( select ARRAY_TO_STRING(ARRAY(SELECT distinct
COLUMN_NAME::VARCHAR(50) FROM INFORMATION_SCHEMA.COLUMNS WHERE
TABLE_NAME='products' AND  COLUMN_NAME NOT IN ('code') ), ', ') ) 
from products;
  

Но он не работает должным образом. Это дает вывод следующим образом:

           ?column?          
 ---------------------------  
 name, price, manufacturer  
 name, price, manufacturer  
 name, price, manufacturer
  

Вместо,

        name       | price | manufacturer 
 ----------------- ------- --------------  
 Hard drive       |   240 |            5  
 Memory           |   120 |            6  
 ZIP drive        |   150 |            4
  

Итак, как я могу это решить?

Комментарии:

1. Для этого вам нужен динамический SQL. Это невозможно сделать с помощью обычного SQL, потому что структура результата запроса должна быть известна до фактического выполнения этого запроса.