Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
Павел677
Member

Откуда:
Сообщений: 17
Здравствуйте.
Подскажите как в запросе, задать условие что строка содержит от 10 до 20 любых символов из перечня a-z и 0-9 ?

% - не подходит - так как произвольное число символов.
_ не подходит так как предполагает что должен быть обязательно символ.

есть строчка из символов a-z и 0-9 (бинарные данные представленные в hex режиме) нужно найти в них 2 подстроки отстоящие друг от друга на расстоянии то 10 до 20 символов.

можно это выразить простым способом ?

или придется как-то извратиться
like '%FirstWord__________SecondWord%' OR // символ _ повторен 10 раз
like '%FirstWord___________SecondWord%' OR // символ _ повторен 11 раз
like '%FirstWord____________SecondWord%' OR // символ _ повторен 12 раз
...
like '%FirstWord____________________SecondWord%' OR // символ _ повторен 20 раз

Как-то это криво выглядит.
Есть что-то более простое и производительное ?
1 сен 18, 11:18    [21661100]     Ответить | Цитировать Сообщить модератору
 Re: Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
invm
Member

Откуда: Москва
Сообщений: 9123
abs(charindex(FirstWord, строка) - charindex(SecondWord, строка)) between 10 and 20
1 сен 18, 12:01    [21661121]     Ответить | Цитировать Сообщить модератору
 Re: Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
Kopelly
Member

Откуда: Красноярск
Сообщений: 289
на случай отсутствия слов в строке:
(nullif(charindex(SecondWord, строка),0)-nullif(charindex(FirstWord, строка),0)) between 10 and 20
1 сен 18, 12:29    [21661134]     Ответить | Цитировать Сообщить модератору
 Re: Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
S LIKE REPLICATE('%[0123456789abcdefghijklmnopqrstuvwxyz]%',10)
AND
S NOT LIKE REPLICATE('%[0123456789abcdefghijklmnopqrstuvwxyz]%',21)
1 сен 18, 17:26    [21661280]     Ответить | Цитировать Сообщить модератору
 Re: Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
KRS544
Member

Откуда:
Сообщений: 497
s NOT LIKE  '%[^a-z0-9]%'
and LEN(s) between 10 and 20 
1 сен 18, 22:40    [21661407]     Ответить | Цитировать Сообщить модератору
 Re: Like как задать в шаблоне что может быть от 10 до 20 любых символов?  [new]
Павел677
Member

Откуда:
Сообщений: 17
Спасибо всем за комментарии.
6 сен 18, 21:55    [21667517]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить