2012-04-27 14 views
13

Cómo hacer coincidir números en SQL Server 'LIKE'.Comodín de número en SQL Server

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

Above is my table contents. Quiero obtener solo registros que terminen con caracteres numéricos, es decir, quiero los registros de New_Space_1 a New_Space_11.

no quieren New_Space_SomeString y New_Space_SomeString1

tengo alguna consulta como esta.

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New_Space_%' 

Pero esto devuelve todos los registros.

Respuesta

7

Esta solución de @SteveKass funciona perfecto.

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

¿qué pasa con

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

La razón por la que puse guión bajo en los soportes se debe a que en una expresión regular significa _ Cualquier carácter individual. Lea sobre como aquí http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

Gran .... Funciona ... Gracias – Sreekumar

+1

.. Uno de los problemas de este 'New_Space_8-56' también se devuelve la consulta – Sreekumar

+6

¿Qué tal esto: SELECT SpaceName DE SpaceTable DONDE SpaceName a 'nuevo [\ _] Espacio [\ _]% ' AND SpaceName NOT LIKE' Nuevo [\ _] Espacio [\ _]% [^ 0-9]% ' –

Cuestiones relacionadas