2012-04-27 25 views
13

Come abbinare i numeri in "LIKE" di SQL Server.Carattere jolly del numero in SQL Server

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

Sopra è il mio contenuto della tabella. Voglio ottenere solo i record che terminano con caratteri numerici, cioè voglio i record da New_Space_1 a New_Space_11.

non vogliono New_Space_SomeString e New_Space_SomeString1

ho qualche domanda come questa.

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New_Space_%' 

Ma questo restituisce tutti i record.

risposta

7

Questa soluzione di @SteveKass funziona perfettamente.

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

che dire

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

La ragione per cui ho messo sottolineano tra parentesi è perché in un'espressione regolare _: ogni singolo carattere. Leggi qui come http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

Grande .... Funziona ... Grazie – Sreekumar

+1

Un problema .. questo 'New_Space_8-56' è anche restituito dalla query – Sreekumar

+6

Che ne dite di questo: SELEZIONARE nomespazio FROM WHERE SpaceTable nomespazio LIKE 'Nuovo [\ _] Spazio [\ _]% ' E SpazioNome NON MI PIACE' Nuovo [\ _] Spazio [\ _]% [^ 0-9]% ' –

Problemi correlati