15

How to match numbers in SQL Server 'LIKE'.

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. I want to get only records ending with Numeric chars, ie I want the records from New_Space_1 to New_Space_11.

Don't want New_Space_SomeString and New_Space_SomeString1

I have some query like this.

SELECT SpaceName FROM SpaceTable
    WHERE SpaceName LIKE 'New_Space_%' 

But this returns all records.

4

2 回答 2

20

what about

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

The reason I put underscore in brackets is because in a regular expression _ means Any single character. Read up on like here http://msdn.microsoft.com/en-us/library/ms179859.aspx

于 2012-04-27T10:46:58.410 回答
8

@SteveKass 的这个解决方案非常完美。

SELECT SpaceName FROM SpaceTable WHERE SpaceName LIKE 'New[_]Space[_]%' AND SpaceName NOT LIKE 'New[_]Space[_]%[^0-9]%' 
于 2012-05-02T09:12:17.147 回答