2012-04-27 32 views
13

Cách khớp số trong SQL Server 'LIKE'.Ký tự đại diện của số trong SQL Server

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

Phía trên là nội dung bảng của tôi. Tôi muốn chỉ nhận hồ sơ kết thúc bằng ký tự số, nghĩa là tôi muốn các bản ghi từ New_Space_1 đến New_Space_11.

Không muốn New_Space_SomeStringNew_Space_SomeString1

Tôi có một số câu hỏi như thế này.

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New_Space_%' 

Nhưng điều này trả về tất cả các bản ghi.

Trả lời

7

Giải pháp này từ @SteveKass hoạt động hoàn hảo.

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

gì về

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

Lý do tôi đặt gạch chân trong ngoặc đơn là bởi vì trong một biểu thức chính quy _ có nghĩa là ký tự bất kỳ. Đọc trên như ở đây http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

lớn .... Nó hoạt động ... Cảm ơn – Sreekumar

+1

Một vấn đề .. này 'New_Space_8-56' cũng được trả về bởi các Query – Sreekumar

+6

Làm thế nào về vấn đề này: CHỌN SpaceName TỪ SpaceTable ĐÂU SpaceName LIKE 'mới [\ _] Không gian [\ _]% ' VÀ Không gian tên KHÔNG THÍCH' Không gian mới [\ _] [\ _]% [^ 0-9]% ' –

Các vấn đề liên quan