Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
В экстазе
 Аватар для wolfalone
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток уважаемые!

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

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

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

Подскажите пожалуйста, как это сделать?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2016, 19:45
Ответы с готовыми решениями:

Приведение типов для массивов
Вот код unit Unit31; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;

Не требуется приведение типов при умножении типов Byte
Читал тут книгу(Г. Шилдт, "Полный справочник по C#"), и нашел такое (ст. 77) Поскольку при умножении, например, 2 чисел типа byte,...

Приведение типов сырых типов
class Gen<T> { T ob Gen(T o) { ob=o; } T getob(){ return ob; } public class RawDemo {

2
1258 / 973 / 383
Регистрация: 02.09.2012
Сообщений: 3,001
27.11.2016, 23:28
Лучший ответ Сообщение было отмечено wolfalone как решение

Решение

Цитата Сообщение от 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" ~ ....
1
В экстазе
 Аватар для wolfalone
168 / 152 / 38
Регистрация: 05.08.2012
Сообщений: 767
Записей в блоге: 3
28.11.2016, 18:52  [ТС]
Благодарю за помощь, запрос ещё не проверял (пока нет возможности), но общую логику я понял. В итоге всё-таки решил не извращаться и вынести данные в отдельную таблицу, т.к. с массивом "лучше" не получается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.11.2016, 18:52
Помогаю со студенческими работами здесь

Приведение типов
Доброго времени суток. Есть вопрос. Допустим: class Base { ..... } class Derived:public Base{ .... }

Приведение типов.
Столкнулся с задачей считывания данных из символьного массива с дальнейшим отбором из всего этого чисел и перезаписи их в массив типа...

Приведение типов
вот почему. ну почему. так можно short s3 = 10+11; а вот так нельзя? short s1 = 10; short s2 = 11; short s4 = s1 + s2;...

Приведение типов
Добрый день! Работаю в IDE Netbeens (но думаю не суть). Есть интерфейс bapICredentials: interface bapICredentials extends...

Приведение типов
В базе хранится дата в виде: 2016-03-22 08:40:11 Помогите привести в вид 2016/03/22 любыми способами в PHP преобразовании или при MySQL...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Полностью асинхронный счётчик на логике (сумматорах) трёх состояний и асинхронных регистрах трёх состояний. Структура "электронный Buttom Up"
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер