Wildcard of Number in SQL Server

走远了吗. 提交于 2019-12-09 08:52:48

问题


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.


回答1:


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




回答2:


This solution from @SteveKass works perfect.

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


来源:https://stackoverflow.com/questions/10349203/wildcard-of-number-in-sql-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!