powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT в string :)
6 сообщений из 6, страница 1 из 1
SELECT в string :)
    #35824044
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго всем дня!
Подскажите, пожалуйста, можно ли результат select запроса вывести в строку?

К примеру вот такое:
select id from table;

id
----
1
2
3
4
5

Вывести вот так:

id
---
1,2,3,4,5

То есть в резалтсете будет только одна строка со стринговым значением.

Заранее благодарен...
...
Рейтинг: 0 / 0
SELECT в string :)
    #35824066
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Кит,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE AGGREGATE "public"."array_accum" ( BASETYPE = "anyelement",
SFUNC = "array_append", STYPE = "anyarray",
INITCOND = "{}");

DROP TABLE IF EXISTS mytemp ;
CREATE TEMP TABLE mytemp (id int4) ;
INSERT INTO mytemp VALUES ( 1 ) ;
INSERT INTO mytemp VALUES ( 2 ) ;
INSERT INTO mytemp VALUES ( 3 ) ;
INSERT INTO mytemp VALUES ( 4 ) ;
INSERT INTO mytemp VALUES ( 5 ) ;

SELECT 
	Array_To_String(Array_Accum(Id), ', ') AS Ids
FROM mytemp ;

Интересно, в FAQ нет еще такого?
...
Рейтинг: 0 / 0
SELECT в string :)
    #35824367
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое, возьму на вооружение.

Пока вот таким образом вышел из положения:
Код: plaintext
1.
array_to_string(ARRAY( SELECT table.id FROM table),',') AS id_string
...
Рейтинг: 0 / 0
SELECT в string :)
    #35824402
Remach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это решается аггрегатными функциями. Я это описывал тут: http://www.sql.ru/forum/actualthread.aspx?tid=632630
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
SELECT в string :)
    #39267733
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток,

По вышеуказанному примеру попробовал запрос на собственно созданные таблицы, работает.
А на системные таблицы не работает.
Запрос данных из системной таблицы:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'my_scheme'
  AND table_name   = 'my_table'
order by ordinal_position  
;



Надо результат запроса в одну строку, выполняю так:
Код: sql
1.
2.
select array_to_string(array(SELECT column_name FROM information_schema.columns WHERE table_schema = 'my_scheme' AND table_name   = 'my_table' order by ordinal_position),',')
;


Получаю ошибку:
ОШИБКА: тип массива для типа данных information_schema.sql_identifier не найден
SQL-состояние: 42704

Что неправильно написал ?
...
Рейтинг: 0 / 0
SELECT в string :)
    #39267741
Фотография Gabit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос не актуален,

Решил через стандартную агрегатрую функцию

Код: sql
1.
2.
3.
4.
select string_agg( column_name, ', ' ) from (select column_name from information_schema.columns
WHERE table_schema = 'my_scheme'
  AND table_name   = 'my_table' order by ordinal_position  ) x
;
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT в string :)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]