Форум программистов, компьютерный форум, киберфорум
Наши страницы

PostgreSQL

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

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

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

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

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

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

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

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

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

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

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

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

Преобразование типов в Postgresql - C#
Надо преобразовать тип varchar в numeric (5,2). Делаю так: select sum (CAST(a01 AS numeric(5,1))) from card. Не получается. Выводит...

Приведение типов - C++
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого qsort. Вот что получилось: ...

2
grgdvo
589 / 520 / 151
Регистрация: 02.09.2012
Сообщений: 1,541
27.11.2016, 23:28 #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" ~ ....
1
wolfalone
В экстазе
158 / 142 / 33
Регистрация: 05.08.2012
Сообщений: 748
Записей в блоге: 3
28.11.2016, 18:52  [ТС] #3
Благодарю за помощь, запрос ещё не проверял (пока нет возможности), но общую логику я понял. В итоге всё-таки решил не извращаться и вынести данные в отдельную таблицу, т.к. с массивом "лучше" не получается.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2016, 18:52
Привет! Вот еще темы с ответами:

Приведение типов - Delphi
type TFile = record public Name: string; Hash: string; end; TFilesList = class private fDirs:...

Приведение типов - C#
Есть 2 класса, экземпляр одного из них передаётся в другой по ссылке: public B(Object a) { _a = a; } ...

Приведение типов - C++ Builder
Ребят, здравствуйте. Срочный вопрос. Заранее очень благодарен за помощь. У меня есть свой класс в c++ builder: class Hamal : public...

Приведение типов - C#
Вопрос сугубо теоретический, если тут такое разрешено. Знания почерпнуты из книги Троелсен Э. - Язык программирования C# 2010 и платформа...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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