powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / LIKE с числами
18 сообщений из 18, страница 1 из 1
LIKE с числами
    #39336711
Pasha4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Оператор LIKE работает только с текстовыми типами данных? Если нужно найти числа, начинающиеся с определенных чисел, то как это сделать? К примеру, нужны все записи из поля (integer), начинающиеся с числа 102.
Спасибо.
...
Рейтинг: 0 / 0
LIKE с числами
    #39336757
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4Оператор LIKE работает только с текстовыми типами данных? Если нужно найти числа, начинающиеся с определенных чисел, то как это сделать? К примеру, нужны все записи из поля (integer), начинающиеся с числа 102.
Спасибо.

Ну заcast'уй число в строку. В чем проблема?
:-)
...
Рейтинг: 0 / 0
LIKE с числами
    #39336779
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4начинающиеся с числа 102. в троичном или восьмеричном представлении ?
...
Рейтинг: 0 / 0
LIKE с числами
    #39337066
Pasha4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mad_nazgul,
Я делал приведение, но немного не в том месте)) Сейчас отрабатывает. У меня такая строка кейса:
WHEN CAST (ks AS varchar(10)) LIKE '102%' THEN 'Поставка, всего'

А внутри LIKE нельзя BETWEEN засунуть? Чтобы выдавал все значения, начинающиеся с 102 до 118. Или придется писать отдельные WHEN-ы..
...
Рейтинг: 0 / 0
LIKE с числами
    #39337096
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4,

Число в строку, возьмите первых 3 символа, результат в число, `BETWEEN 102 AND 118`.
...
Рейтинг: 0 / 0
LIKE с числами
    #39337335
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4mad_nazgul,
Я делал приведение, но немного не в том месте)) Сейчас отрабатывает. У меня такая строка кейса:
WHEN CAST (ks AS varchar(10)) LIKE '102%' THEN 'Поставка, всего'

А внутри LIKE нельзя BETWEEN засунуть? Чтобы выдавал все значения, начинающиеся с 102 до 118. Или придется писать отдельные WHEN-ы..

Вы знаете, какие бывают значения в реальной базе, начинающиеся с 102 и до 118?
...
Рейтинг: 0 / 0
LIKE с числами
    #39337730
Pasha4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЧисло в строку, возьмите первых 3 символа, результат в число, `BETWEEN 102 AND 118`
(cast ( cast(ks AS varchar(10)) LIKE '___') AS INTEGER) between 102 and 118

не получается, ошибка синтаксиса в области закрывающей скобки LIKE '___' )

авторВы знаете, какие бывают значения в реальной базе, начинающиеся с 102 и до 118?
Знаю, но их очень много..
...
Рейтинг: 0 / 0
LIKE с числами
    #39337732
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4авторЧисло в строку, возьмите первых 3 символа, результат в число, `BETWEEN 102 AND 118`
(cast ( cast(ks AS varchar(10)) LIKE '___') AS INTEGER) between 102 and 118

не получается, ошибка синтаксиса в области закрывающей скобки LIKE '___' )

авторВы знаете, какие бывают значения в реальной базе, начинающиеся с 102 и до 118?
Знаю, но их очень много..

вопрос не о количестве, а о том какие числа вообще бывают?

102
1025
10217
102234

?

т.е. от между 100 и 10000 максимум?
...
Рейтинг: 0 / 0
LIKE с числами
    #39337801
Pasha4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторвопрос не о количестве, а о том какие числа вообще бывают?
вообще числа из восьми символов: 10800005, 10900010, 10400015 и тд.

Проблема решилась с помощью substring-а, корректный запрос такой:
when substring(cast(ks as varchar (10)),1,3)::int between 102 and 118 then 'Поставка, всего' END
...
Рейтинг: 0 / 0
LIKE с числами
    #39337832
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4авторвопрос не о количестве, а о том какие числа вообще бывают?
вообще числа из восьми символов: 10800005, 10900010, 10400015 и тд.

Проблема решилась с помощью substring-а, корректный запрос такой:
when substring(cast(ks as varchar (10)),1,3)::int between 102 and 118 then 'Поставка, всего' END

Ясно, а почему так нельзя было?

between 10800000 AND 11999999
...
Рейтинг: 0 / 0
LIKE с числами
    #39337837
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинPasha4пропущено...

вообще числа из восьми символов: 10800005, 10900010, 10400015 и тд.

Проблема решилась с помощью substring-а, корректный запрос такой:
when substring(cast(ks as varchar (10)),1,3)::int between 102 and 118 then 'Поставка, всего' END

Ясно, а почему так нельзя было?

between 10800000 AND 11999999

edit:
between 10800000 AND 11899999
...
Рейтинг: 0 / 0
LIKE с числами
    #39337843
isdenno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasha4,

число/102>=1
...
Рейтинг: 0 / 0
LIKE с числами
    #39337846
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг ХупинРолг Хупинпропущено...


Ясно, а почему так нельзя было?

between 10800000 AND 11999999

edit:
between 10800000 AND 11899999



edit:
between 10200000 AND 11899999
...
Рейтинг: 0 / 0
LIKE с числами
    #39338054
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha4mad_nazgul,
Я делал приведение, но немного не в том месте)) Сейчас отрабатывает. У меня такая строка кейса:
WHEN CAST (ks AS varchar(10)) LIKE '102%' THEN 'Поставка, всего'

А внутри LIKE нельзя BETWEEN засунуть? Чтобы выдавал все значения, начинающиеся с 102 до 118. Или придется писать отдельные WHEN-ы..

Ну between наверное нельзя, но можно что-то вроде

'101' < substring(CAST (ks AS varchar(10)), 0, 3) AND sunstring(CAST (ks AS varchar(10)), 0, 3) < '119'

Где-то так :-)
...
Рейтинг: 0 / 0
LIKE с числами
    #39338057
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
'[10200000, 11900000)'::int4range @> 11899999
...
Рейтинг: 0 / 0
LIKE с числами
    #39338078
isdenno
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pasha4авторвопрос не о количестве, а о том какие числа вообще бывают?
вообще числа из восьми символов: 10800005, 10900010, 10400015 и тд.

Проблема решилась с помощью substring-а, корректный запрос такой:
when substring(cast(ks as varchar (10)),1,3)::int between 102 and 118 then 'Поставка, всего' END

Код: sql
1.
trunc(ks/power(10, trunc(log(ks)-2))) between 102 and 118
...
Рейтинг: 0 / 0
LIKE с числами
    #39338099
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulPasha4mad_nazgul,
Я делал приведение, но немного не в том месте)) Сейчас отрабатывает. У меня такая строка кейса:
WHEN CAST (ks AS varchar(10)) LIKE '102%' THEN 'Поставка, всего'

А внутри LIKE нельзя BETWEEN засунуть? Чтобы выдавал все значения, начинающиеся с 102 до 118. Или придется писать отдельные WHEN-ы..

Ну between наверное нельзя, но можно что-то вроде

'101' < substring(CAST (ks AS varchar(10)), 0, 3) AND sunstring(CAST (ks AS varchar(10)), 0, 3) < '119'

Где-то так :-)

???

between 10200000 AND 11899999
...
Рейтинг: 0 / 0
LIKE с числами
    #39338273
Pasha4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,
авторЯсно, а почему так нельзя было?
between 10200000 AND 11899999
Точно.. так проще всего было бы )
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / LIKE с числами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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