Làm cách nào để thoát dấu phần trăm trong T-SQL?


187

Câu hỏi này cũng có câu trả lời , nhưng nó đề cập cụ thể đến DB2.

Làm cách nào để tìm kiếm một chuỗi bằng chuỗiLIKE đã có %ký hiệu phần trăm trong đó? Các LIKEsử dụng toán tử %biểu tượng để biểu thị các kí hiệu.

Câu trả lời:


283

Sử dụng dấu ngoặc. Vì vậy, để tìm kiếm 75%

WHERE MyCol LIKE '%75[%]%'

Điều này đơn giản hơn ESCAPE và phổ biến đối với hầu hết các RDBMS.


2
cũng lưu ý rằng bạn không phải thoát biểu tượng phần trăm trong các cấu trúc khác như chức năng người dùng, ghép nối, v.v.
Bron Davies


2
Bạn cũng có thể thoát khỏi ký tự đại diện gạch dưới [_]. Làm thế nào để bạn thoát khỏi khung vuông mở sau đó? Như thế này : [[]. sqlserver2000.databases.aspfaq.com/...
Csaba Toth

Sử dụng mệnh đề ESCAPE dễ hiểu hơn cơ chế trích dẫn bị tổn thương não của MS.
Suncat2000

51

Bạn có thể sử dụng ESCAPEtừ khóa với LIKE. Chỉ cần thêm ký tự mong muốn (ví dụ '!') Cho mỗi %dấu hiệu hiện có trong chuỗi rồi thêm ESCAPE '!'(hoặc ký tự bạn chọn) vào cuối truy vấn.

Ví dụ:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Điều này sẽ làm cho cơ sở dữ liệu coi 80% là một phần thực tế của chuỗi để tìm kiếm chứ không phải 80 (ký tự đại diện).

Tài liệu MSDN cho LIKE



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.