Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 like одна или несколько цифр  [new]
Referee
Member

Откуда:
Сообщений: 151
Добрый день.

можно ли в MS SQL задать маску для поиска одной или нескольких цифр.

чтото типа [0-9][0-9][0-9] толко задать чтобы [0-9] могло посторятся от 1 до 5 раз.

select 1 
where '12' like '[0-9][0-9][0-9]'

select @@version
Microsoft SQL Server 2005 - 9.00.4311.00 (X64)   Sep 28 2010 12:34:22   Copyright (c) 1988-2005 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2) 

в справке не нашел подобной такой информации.

Спасибо.
21 июн 11, 10:19    [10844766]     Ответить | Цитировать Сообщить модератору
 Re: like одна или несколько цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
DECLARE @S VARCHAR(100)='12345';
SELECT 1
WHERE @S NOT LIKE '%[^0-9]%'
  AND @S NOT LIKE REPLICATE('%[0-9]%',5+1);
21 июн 11, 10:30    [10844841]     Ответить | Цитировать Сообщить модератору
 Re: like одна или несколько цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Пустую строку тоже ведь надо отбросить:
DECLARE @S VARCHAR(100)='0';
SELECT 1
WHERE @S NOT LIKE '%[^0-9]%'
  AND @S NOT LIKE REPLICATE('%[0-9]%',5+1)
  AND @S LIKE '_%';
или
DECLARE @S VARCHAR(100)='0';
SELECT 1
WHERE @S NOT LIKE '%[^0-9]%'
  AND LEN(@S) BETWEEN 1 AND 5;
21 июн 11, 10:34    [10844868]     Ответить | Цитировать Сообщить модератору
 Re: like одна или несколько цифр  [new]
Referee
Member

Откуда:
Сообщений: 151
iap,

Спасибо за ответы.

получается одной маской не обойтись чтобы запрос выгляди просто

...
where field like @mask

без каких либо дополнительных условий

просто уже подобный код реализовал и хотелось бы разные макси просто задавать параметром..
21 июн 11, 10:52    [10845021]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить