powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Составить like
7 сообщений из 7, страница 1 из 1
Составить like
    #39791967
*Ann*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Помогите, пожалуйста, составить выражение для оператора like.
Надо выбрать номера домов больше 400. При этом поле текстовое и может содержать любое количество символов, например "453/1" или "1012 литер А".
...
Рейтинг: 0 / 0
Составить like
    #39792057
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
WHERE Number > '400'
...
Рейтинг: 0 / 0
Составить like
    #39792094
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Код: sql
1.
WHERE Number > '400'

дык, для "1012 литер А" - "не сыграет" ...
Код: sql
1.
select case when '1012 литер А' > '400' then 1 else 0 end 


(Отсутствует имя столбца)0
...
Рейтинг: 0 / 0
Составить like
    #39792105
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отделить первое число от нечисла (пробел, косая, буквы).
Преобразовать полученную подстроку в число
Сделать проверку на более 400
(профит)
...
Рейтинг: 0 / 0
Составить like
    #39792157
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
courtiap
Код: sql
1.
WHERE Number > '400'


дык, для "1012 литер А" - "не сыграет" ...
Код: sql
1.
select case when '1012 литер А' > '400' then 1 else 0 end 



(Отсутствует имя столбца)0
Код: sql
1.
select case when PATINDEX('%[^0123456789]%','1012 литер А') > LEN('400')+1 OR '1012 литер А' > '400' then 1 else 0 end
...
Рейтинг: 0 / 0
Составить like
    #39792177
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ann*,

задача не имеет решения в общем случае, можно только предполагать , что полученные символы являются номером дома.
Например, номер дома может быть 400А и 400Б или строка записана как "д. 30 49 крп.100".
...
Рейтинг: 0 / 0
Составить like
    #39792236
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ищет в строке число (длиной от трех знаков) и преобразовает его в Int. Если не находит - NULL

Код: sql
1.
2.
3.
4.
try_cast(substring(HouseNum,
nullif(patindex('%[0-9][0-9][0-9]%',HouseNum),0),
isnull(nullif(patindex('%[^0-9]%',substring(HouseNum,nullif(patindex('%[0-9][0-9][0-9]%',HouseNum),0),len(HouseNum))),0)-1,len(HouseNum)))
as int)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Составить like
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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