powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование текста в число
13 сообщений из 13, страница 1 из 1
Преобразование текста в число
    #40026706
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Требуется помощь. Есть номер дома, который может принимать значения 20, 1/2, 500/1, 325А и т.д.
Мне нужно найти дома, номера которых больше 200. Как можно это сделать, если поле не имеет числовой формат?
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40026711
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На вскидку, регулярным выражением выдергивать номер дома и уже с ним работать.
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40026809
Фотография DSKalugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
select T.id, T.nhouse, T.sep, regexp_replace(T.sep, '\D+', '')
from (
select id, nhouse,
	trim(regexp_split_to_table(nhouse, '/')) as sep
FROM (VALUES(1, '13'), (2, '210'), (3, '214А'), (4, '14/350'), (5, '217-А'), (6, '314 Б')) AS TableH (id, nhouse)
) T
where  regexp_replace(T.sep, '\D+', '')::INT > 200
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40026895
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь. Только немного не то получается. Выражение преобразовывает дом с номером 27/14 в значение 2714, и в итоге этот дом через условие where выдается, а не должен.
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40026944
Фотография DSKalugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ann*,
Без текста вашего запроса никто вам не скажет в какой строке ошибка

на моем примере специально есть такая запись (4, '14/350'),
которая с помощью regexp_split_to_table(nhouse, '/') разбивается на две строки 14 и 350,
а потом условием WHERE отсекается 14, остается 350

idnhousesepregexp_replace113131322102102103214А214А214414/3501414414/3503503505217-А217-А2176314 Б314 Б314
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40026974
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока просто проверю что выдает запрос.
Запрос такой:
select eah.id, eah.housenum, regexp_replace(eah.housenum, '\D+','')
from ent_as_house eah
where
and eah.id = 123
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027025
Фотография DSKalugin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ann*
Пока просто проверю что выдает запрос.
Запрос такой:
select eah.id, eah.housenum, regexp_replace(eah.housenum, '\D+','')
from ent_as_house eah
where
and eah.id = 123


regexp_replace(eah.housenum, '\D+','') - убирает все нечисловые [0-9] символы из строки
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027104
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как можно выделить только первую часть номера до какого-либо нечислового символа? То есть, если номер дома 27/14, то должно остаться просто 27.
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027111
vsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vsl
Гость
*Ann*,

Код: plaintext
nullif(regexp_replace(номер_дома, '\D.*$', ''),'')::integer
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027117
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все получилось. Большое спасибо за помощь
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027134
fte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ann*
А как можно выделить только первую часть номера до какого-либо нечислового символа? То есть, если номер дома 27/14, то должно остаться просто 27.


А для Вас важно, что номер дома 27/201 будет 201 домом, но по другой улице?
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027308
naiaracampos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*Ann*,
...
Рейтинг: 0 / 0
Преобразование текста в число
    #40027310
naiaracampos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование текста в число
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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