Форум программистов, компьютерный форум CyberForum.ru

PostgreSQL

Войти
Регистрация
Восстановить пароль
 
wolfalone
В экстазе
143 / 127 / 26
Регистрация: 05.08.2012
Сообщений: 653
Записей в блоге: 3
#1

Приведение типов массивов PostgreSQL и поиск по ним - PostgreSQL

27.11.2016, 19:45. Просмотров 236. Ответов 2
Метки нет (Все метки)

Доброго времени суток уважаемые!

Есть поле в таблице типа VARCHAR.

Есть запрос вида:
SQL
1
SELECT * FROM table1 WHERE column1 ~ E'^\\d+$' AND column1::INTEGER > 10
Который, как Вы догадались, позволяет делать приведение и сравнение VARCHAR-полей как целых.

Стоит аналогичная задача, но, поле на этот раз - массив VARCHAR[]. Нужно попробовать привести каждое значение массива к типу INTEGER и проверить, по какому-то условию (например, больше ли он 10). Если значение не приводится к типу INTEGER (например, содержит символы отличные от цифр) - просто проигнорировать это конкретное значение.

Подскажите пожалуйста, как это сделать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2016, 19:45     Приведение типов массивов PostgreSQL и поиск по ним
Посмотрите здесь:

Php+postgresql поиск по базе данных - PostgreSQL
Народ ну подскажите плиз, ни как не могу понять как допилить. Что нужно: 1. Есть большая база данных 2. Необходимо из неё выдернуть...

Не могу разобраться с PostgreSQL. Поиск по всем таблицам и всем полям? - PostgreSQL
Вообщем у меня следующая проблема... подскажите как сделать поиск по во всех таблицах базы и во всех полях каждой таблицы? в моем...

Импорт .dbf в PostgreSQL. C# - PostgreSQL
Здравствуйте. Возникла задача импорта dbf файла в базу данных Postgre... нашла всего несколько вопросв по данной теме в частности...

Postgresql php generator - PostgreSQL
Помогите, пожалуйста, разобраться в чем проблема. Создал БД и таблицу в ней с помощью pgadmin, хотел создать webфоруму для нее с...

Ищу литературу по PostgreSQL - PostgreSQL
Ребята у кого есть книги по PostgreSQL для работы системного администратора нужно срочьно приобрести. Буду благодарна за любые подсказки...

Динамические запросы в PostgreSQL - PostgreSQL
Здравствуйте! Подскажите пожалуйста, где можно почитать про составление динамических запросов в PostgreSQL? (на русском языке). Использую...

PostgreSQL мандатный доступ - PostgreSQL
Нужно настроить мандатный доступ на Astra Linux, версия подходящая SELinux 2.6, PostgreSQL тоже, выше 9.2 Как я понял из информации в...

Ошибка в остановке postgresql - PostgreSQL
postgresql работает нормально, но при попытке остановить ее получаю следующее: 1) Через кнопку Stop Server: Start DoCmd(net stop...

Установка Postgresql на сервер - PostgreSQL
Добрый день. Установил postgresql на сервер. p.s. ОС ubuntu. Мои действия. 1. apt-get install postgresql 2. Изменил файл...

Подключение Postgresql к eclipse - PostgreSQL
Ну вообщем я "потерял" БД, а воркспэйс eclipse`а остался. Решил восстановить базу, настроил все как было прежде. Выдает ошибку. ...

Начало работы в PostgreSql - PostgreSQL
У меня курсовая: нужно создать примитивную базу данных в PostgreSql. Но я вообще не могу разобраться как создать там базу данных, как...

Типы индексов в PostgreSQL - PostgreSQL
Какие существуют типы индексов в PostgreSQL,зашел в официальную документацию а там написано только "B-tree, Hash, GiST and GIN" а как же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grgdvo
537 / 478 / 137
Регистрация: 02.09.2012
Сообщений: 1,398
27.11.2016, 23:28     Приведение типов массивов PostgreSQL и поиск по ним #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от wolfalone Посмотреть сообщение
Подскажите пожалуйста, как это сделать?
1. Написать самому функцию проверки на sql/plpgsql. Правда, если у вас миллионы записей, не факт, что будет быстро работать.
2. Можно пробовать разложить массив в записи. функция unnest, далее как у Вас проверять.

SQL
1
2
3
4
SELECT tt.*
FROM
(SELECT t.*, unnest(t."ArrayData") AS "ArrayItem" FROM table1 AS t) AS tt
WHERE "ArrayItem" ~ ....
wolfalone
В экстазе
143 / 127 / 26
Регистрация: 05.08.2012
Сообщений: 653
Записей в блоге: 3
28.11.2016, 18:52  [ТС]     Приведение типов массивов PostgreSQL и поиск по ним #3
Благодарю за помощь, запрос ещё не проверял (пока нет возможности), но общую логику я понял. В итоге всё-таки решил не извращаться и вынести данные в отдельную таблицу, т.к. с массивом "лучше" не получается.
Yandex
Объявления
28.11.2016, 18:52     Приведение типов массивов PostgreSQL и поиск по ним
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru