Вложенный SELECT

Есть запрос вида

SELECT что то
(SELECT что то FROM таблица1) AS название
FROM таблица2 WHERE условие; 

Вложенный селект возвращает несколько строк, существует ли способ объединить их одной строкой?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Возможно

Нет, это немного не то. UNION

Нет, это немного не то. UNION объединяет таблицы с одинаковой структурой. Мне же нужно строки возвращаемые вложенным селектом объединить в одну, причем заранее я не знаю сколько строк мне вернет вложенный селект.

Тогда поясните, что значит

Тогда поясните, что значит "объединить в одну". Это самое объединение должно же по каким-то правилам осуществляться! Нарисуйте примерчик, что есть, что хотите получить

Например вложенный селект мне

Например вложенный селект мне вернул сто логинов, могу ли я как то объединить их в одну запись типа TEXT например?

Можете

Можете

достаточно использовать

достаточно использовать агрегатную функцию

CREATE OR REPLACE FUNCTION makeLinesString(VARCHAR, VARCHAR) RETURNS VARCHAR AS
$$
SELECT COALESCE($1 || ', ', '') || $2;
$$ LANGUAGE 'sql';

CREATE AGGREGATE sumStrings(
sfunc = makeLinesString,
basetype = varchar,
stype = varchar
);

select sumStrings(name) from my_test;

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023