2012-04-27 9 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_1からNew_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

正規表現で_任意の1文字を意味するので

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

について、私は括弧に入れ下線理由は何ですか。ここのように読む http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

グレート....それは動作します...おかげ – Sreekumar

+1

一つの問題...この 'New_Space_8-56'もこのことについてどのようにクエリ – Sreekumar

+6

によって返されます!SPACENAME LIKE「新SpaceTable FROM SPACENAMEを選択[\ _]スペース[\ _]% ' ANDスペース名が不一致'新しい[\ _]スペース[\ _]%[^ 0-9]% ' –

関連する問題