powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразовать SELECT
9 сообщений из 9, страница 1 из 1
Преобразовать SELECT
    #40015912
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть выборка
SELECT foo FROM foo
которая возвращает строки наподобие
(2328,2325,"пр-кт Ленина, 217 стр 2")
(2328,2325,"пр-кт Ленина, 217 стр 3")
Но мне надо, чтобы строки SELECTa были наподобие:
2328•2325•пр-кт Ленина, 217 стр 2
2328•2325•пр-кт Ленина, 217 стр 3
Возможно ли это сделать?
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40015921
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pakko,

SELECT foo.* FROM foo;
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016170
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов,

одним столбцом :)
Причем это для разных таблиц, поэтому неизвестно сколько столбцов.
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016184
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pakko,

Не до конца ясно что именно нужно получить. Но если речь о том, что записи из произвольной таблицы нужно выгрузить в виде строк, где поля чем-то разделены, то можно так:
Код: sql
1.
COPY foo TO stdout DELIMITER '•';


А может и json-чик вполне устроит:
Код: sql
1.
SELECT to_json(foo) FROM foo;
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016195
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pakko
Павел Лузанов,

одним столбцом :)
Причем это для разных таблиц, поэтому неизвестно сколько столбцов.


Видимо как-то так:
Код: sql
1.
select translate(foo::text,',()"','•') from foo;
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016362
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fte,

транслейт и в адресе запятую поменяет на •
Т.е. не
(2327,2325,"пр-кт Ленина, 217")
превращается в
2327•2325•пр-кт Ленина• 217
а надо
2327•2325•пр-кт Ленина, 217

Делема...


А мне надо чтобы он объединил все столбцы в одну строку, разделив их символом •, не меняя содержимого.
Смысл - упростить обновление базы когда появляются дополнительные столбцы. Не лопатить все функции. Да и функций у меня станет от этого меньше
Данные передаю в 1с7 через ОДБЦ драйвер.
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016363
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов,
json дает такую строку, более расширенную. Мне так не надо
{"x":2327,"xkont":2325,"aname":"пр-кт Ленина, 217"}
Ну копирование я как понимаю, будет в файл, а надо чтобы функция возвращала.
Но всё-равно, большое спасибо.
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40016364
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fte,
select translate(foo::text,',()"','•') from foo;
Да и убьёт в таблице все кавычки и скобки в результате запроса.
...
Рейтинг: 0 / 0
Преобразовать SELECT
    #40017353
pakko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, возможно ли такое упрощение задачи
Есть таблица foo в ней три столбца
x::int, xkont::int и aname::text
Возможно ли при помощи некой функции f() сделать так, чтобы вместо трёх столбцов был один столбец - текстовый массив
select f(foo)::text[] FROM foo
причем явно к именам ячеек не обращаться, только к имени таблицы. А сама функция принимала на входе не только тип foo а могла обработать информацию и из других таблиц. Т.е. была универсальной.
Возможно ли такое? Или обязательно следует обращаться
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразовать SELECT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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