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

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

id
----
1
2
3
4
5

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

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

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

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

Код: 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
18.02.2009, 12:35
    #35824367
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в string :)
Спасибо большое, возьму на вооружение.

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

По вышеуказанному примеру попробовал запрос на собственно созданные таблицы, работает.
А на системные таблицы не работает.
Запрос данных из системной таблицы:
Код: 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
05.07.2016, 07:45
    #39267741
Gabit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SELECT в string :)
Вопрос не актуален,

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

Код: 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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SELECT в string :) / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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