Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование текста в число / 13 сообщений из 13, страница 1 из 1
11.12.2020, 10:06
    #40026706
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
Добрый день.
Требуется помощь. Есть номер дома, который может принимать значения 20, 1/2, 500/1, 325А и т.д.
Мне нужно найти дома, номера которых больше 200. Как можно это сделать, если поле не имеет числовой формат?
...
Рейтинг: 0 / 0
11.12.2020, 10:26
    #40026711
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
На вскидку, регулярным выражением выдергивать номер дома и уже с ним работать.
...
Рейтинг: 0 / 0
11.12.2020, 13:30
    #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
11.12.2020, 15:47
    #40026895
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
Спасибо за помощь. Только немного не то получается. Выражение преобразовывает дом с номером 27/14 в значение 2714, и в итоге этот дом через условие where выдается, а не должен.
...
Рейтинг: 0 / 0
11.12.2020, 16:57
    #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
11.12.2020, 17:39
    #40026974
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
Пока просто проверю что выдает запрос.
Запрос такой:
select eah.id, eah.housenum, regexp_replace(eah.housenum, '\D+','')
from ent_as_house eah
where
and eah.id = 123
...
Рейтинг: 0 / 0
11.12.2020, 20:07
    #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
12.12.2020, 06:34
    #40027104
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
А как можно выделить только первую часть номера до какого-либо нечислового символа? То есть, если номер дома 27/14, то должно остаться просто 27.
...
Рейтинг: 0 / 0
12.12.2020, 09:19
    #40027111
vsl
vsl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование текста в число
*Ann*,

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


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


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