powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разбивка строк
2 сообщений из 2, страница 1 из 1
Разбивка строк
    #33428782
Sergey D. Kikilo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Есть табличка содежащая записи типа

Код: plaintext
1.
2.
 a |       b
---+-----------------------------
  1  |  10 . 0 . 4 . 30 / 32 | 10 . 0 . 4 . 40 / 32 

причём в поле b может содержатся сколько угодно сетей разделённых |
если ли какаято возможность разбить подобную выборку на выбоку из несколькких строк
тоесть например получить не
Код: plaintext
1.
2.
 a |       b
---+-----------------------------
  1  |  10 . 0 . 4 . 30 / 32 | 10 . 0 . 4 . 40 / 32 
а
Код: plaintext
1.
2.
3.
 a |       b
---+-----------------------------
  1  |  10 . 0 . 4 . 30 / 32 
  1  |  10 . 0 . 4 . 40 / 32 
если можно прошу привеси пример или хотыбя ссылку на мануал.
Заранне благодарен за помощь.
...
Рейтинг: 0 / 0
Разбивка строк
    #33428943
-me-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А зачем?

Если просто найти запись из таблицы по значению, которое может входить в поле b :
Код: plaintext
1.
select * from the_table where '10.0.4.30'::inet <<= ANY (string_to_array(b, '|')::inet[]);

Если действительно нужно развернуть в таблицу, то, похоже придется извратиться примерно в следующем направлении:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
create type blablabla as (
   a int,
   b inet
);
create function to_table() returns setof blablabla $$
declare _rec record;
_ar text[];
_r2 blablabla;
_i int;
begin
 for _rec in select * from the_table loop
   _ar := string_to_array(_rec.b, '|');
  _r2.a := _rec.a;
    for _i in array_lower(_ar)..array_upper(_ar) loop
        _r2.b := _ar[i];
        return next _r2;
   end loop;
 end loop;
 return;
end$$ language 'plpgsql';
-- не проверял.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Разбивка строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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