2012-04-27 91 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_1New_Space_11的记录。

不想New_Space_SomeStringNew_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 2012-04-27 10:50:03

+1

的一个问题。这'New_Space_8-56'也通过查询 – Sreekumar 2012-04-27 13:58:10

+6

返回这个怎么样:选择SPACENAME FROM SpaceTable WHERE SPACENAME LIKE“新[\ _] Space [\ _]%' AND SpaceName NOT LIKE'New [\ _] Space [\ _]%[^ 0-9]%' – 2012-04-28 01:03:52