2012-04-27 5 views
13

Как совместить числа в SQL Server «LIKE».Подстановочный знак номера в SQL Server

SpaceName 
------------ 
| New_Space_1 
| . 
| . 
| New_Space_8 
| New_Space_9 
| New_Space_10 
| New_Space_11 
| New_Space_SomeString 
| New_Space_SomeString1 

Выше моего содержания в таблице. Я хочу получить только записи, заканчивающиеся на числовые символы, т. Е. Я хочу, чтобы записи от New_Space_1 до New_Space_11.

Не хотите New_Space_SomeString и New_Space_SomeString1

У меня есть запрос, как это.

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New_Space_%' 

Но это возвращает все записи.

ответ

7

Это решение от @SteveKass работает идеально.

SELECT SpaceName FROM SpaceTable WHERE SpaceName LIKE 'New[_]Space[_]%' AND SpaceName NOT LIKE 'New[_]Space[_]%[^0-9]%' 
13

насчет

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New[_]Space[_][0-9]%' 

Причина я помещал подчеркнуть в скобках, потому что в регулярном выражении _ означает любой одиночный символ. Читайте дальше, как здесь http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

Отлично .... Это работает ... Спасибо – Sreekumar

+1

Одна проблема .. это 'New_Space_8-56' также возвращается в Query – Sreekumar

+6

Как об этом: ВЫБРАТЬ SpaceName ОТ SpaceTable ГДЕ SpaceName LIKE«New [\ _] Пробел [\ _]% ' И SpaceName НЕ НРАВИТСЯ' Новый [\ _] Космос [\ _]% [^ 0-9]% ' –

Смежные вопросы