2010-02-19 37 views
29

Tôi đang cố gắng thoát khỏi ký tự gạch dưới trong Tuyên bố LIKE. Tôi đã cố gắng sử dụng từ khóa ESCAPE như sau:Làm cách nào để thoát _ trong SQL Server?

COLUMNNAME NOT LIKE '%[\_]xyz%' ESCAPE '\' 

nhưng không hoạt động. Nó vẫn lọc ra %xyz% khi tôi thực sự muốn lọc ra %_xyz%.

Nếu không phải bằng từ khóa ESCAPE, bạn có thể thực hiện điều này bằng cách nào khác?

Mọi trợ giúp đều được đánh giá cao.

Trả lời

40

Chỉ cần này nên làm việc:

COLUMNNAME NOT LIKE '%[_]xyz%' 

Bạn không cần ESCAPE đây. Những gì bạn đã viết cũng nên hoạt động.

Nếu bạn muốn sử dụng ESCAPE bạn có thể làm điều này:

columnname NOT LIKE '%\_xyz%' ESCAPE '\'; 

Tài liệu về nhân vật thoát là here.

+1

Cảm ơn, điều này đã hiệu quả. Tôi không chắc chắn tại sao nó không hoạt động trước đây nhưng hiện tại nó được đánh giá rất cao. –

15

giá treo đồ sử dụng [_]

này làm việc cho tôi trong SQL Server 2005

select * 
from #table 
where a like '%[_]xyz%' 
+0

+1: Hỗ trợ liên kết: http://sqlserver2000.databases.aspfaq.com/how-do-i-search-for-special-characters-eg- in-sql-server.html –

4

Hãy thử nó không có dấu ngoặc:

COLUMNNAME NOT LIKE '%\_xyz%' ESCAPE '\' 
Các vấn đề liên quan