Computer >> Máy Tính >  >> Lập trình >> SQL Server

Điều kiện LIKE trong SQL Server

Điều kiện LIKE trong SQL Server (Transact-SQL) cho phép sử dụng các ký tự đại diện trong mệnh đề WHERE trong câu lệnh SELECT, INSERT, UPDATE và DELETE, được sử dụng để khớp các mẫu.

Cú pháp LIKE điều kiện

 'biểu thức' LIKE 'mẫu' [ ESCAPE 'Escape_Character' ] 

Tên biến hoặc giá trị biến

biểu thức

Biểu thức ký tự như cột hoặc trường thông tin.

biểu mẫu

Định dạng ký tự chứa các mẫu đối chiếu. Có thể chọn các mẫu từ bảng dưới đây.

Biểu tượng đại diện Giải thích% tìm chuỗi ký tự cho bất kỳ độ dài nào (kể cả độ dài 0) _ tìm ký tự [^] để tìm bất kỳ ký tự nào không có trong ký tự [^] (ví dụ:[^ abc] sẽ tìm bất kỳ ký tự nào không phải là, b hoặc c)

Ký tự thoát

Tùy chọn. Tạm dịch là ký tự bỏ qua, cho phép bạn kiểm tra xem các ký tự như% hoặc _ có được sử dụng theo nghĩa đen (ở dạng hằng số) hay không, nhưng không phải là ký tự đặc biệt.

Ví dụ:sử dụng ký tự đại diện%

Sử dụng ký tự đại diện% trong điều kiện LIKE của SQL Server, chẳng hạn bằng cách tìm kiếm những nhân viên có họ bắt đầu bằng chữ 'B'

  S ELECT * 
FROM nhanvien
WHERE ho LIKE 'B%';

Bạn có thể sử dụng% ký tự trong cùng một chuỗi như ví dụ bên dưới.

  SELE CT * 
FROM nhanvien
WHER ho LIKE '%0%';

Kết quả cho những nhân viên có chứa chữ cái 'o'.

Ví dụ - sử dụng ký tự đại diện _

Lưu ý rằng ký tự _ chỉ được sử dụng để tìm kiếm 1 ký tự (độ dài là 1).

  S ELECT * 
FROM nhanvien
WHERE ho LIKE 'Ad_m';

Trong ví dụ này, kết quả trả về là nhân viên có tên gồm 4 chữ cái, trong đó hai chữ cái đầu tiên là 'Ad' và chữ cái cuối cùng là 'm'. Ví dụ:Adam, Adem, Adim, Adom.

Đây là một ví dụ khác

 SELECT * 
FROM nhanvien
WHERE so_nhanvien LIKE '123_';

Bạn đang tìm kiếm số lượng nhân viên chỉ có 3 trong 4 chữ số. Trong ví dụ trên, kết quả trả về bao gồm 10 bản ghi, các giá trị bị thiếu là từ 0 đến 9:1230, 1231, 1232.

Ví dụ:sử dụng ký tự đại diện []

Lưu ý rằng những gì được đặt trong dấu ngoặc vuông là ký tự bạn muốn và khớp với mẫu.

 SELECT * 
FROM nhanvien
WHERE ten LIKE 'Sm[iy]th';

Kết quả trả về trong ví dụ này là những nhân viên có tên có 5 chữ cái, trong đó hai chữ cái đầu là 'Sm' và hai chữ cái cuối là 'th', ở giữa chữ cái có thể là 'i' hoặc 'y'. Vì vậy, kết quả có thể là Smith hoặc Smyth.

Ví dụ:sử dụng ký tự đại diện [^]

Những ký tự trong ngoặc vuông là những ký tự bạn không muốn khớp với mẫu.

  S ELECT * 
FROM nhanvien
WHERE ten LIKE 'Smy[^iy]th';

Kết quả là tên nhân viên có 5 chữ cái, trong đó hai chữ đầu là 'Sm', hai chữ cuối là 'th' và chữ giữa không phải là ' tôi 'cũng không phải' y '. Kết quả có thể là Smath, Smeth.

Ví dụ - sử dụng toán tử NOT

Đây là cách sử dụng toán tử NOT trong SQL Server với các ký tự đại diện. Bạn có thể tìm thấy họ của nhân viên không bắt đầu bằng chữ 'B' với điều kiện LIKE.

  SE LECT * 
FROM nhanvien
WHERE ho NOT LIKE 'B%';

Bằng cách đặt toán tử NOT trước điều kiện LIKE, bạn tìm thấy họ nhân viên không bắt đầu bằng 'B'.

Ví dụ:sử dụng ký tự để bỏ qua Ký tự thoát

Việc sử dụng các ký tự bỏ qua là điều quan trọng khi so sánh các mẫu, để tránh hiểu nhầm các ký tự đặc biệt khi bạn muốn sử dụng nó như một giá trị không đổi.

Ví dụ:nếu bạn muốn tìm kiếm các ký tự a% hoặc a_ chẳng hạn.

Lưu ý rằng chỉ có thể xác định các ký tự bằng 1 ký tự (độ dài là 1).

  SELEC T * 
FROM nhanvien
WHERE secret_hint LIKE '123!%455' ESCAPE '!';

Lệnh này sẽ trả về những nhân viên có secret_hint là 123% 455. Ký tự% không còn được sử dụng với ý nghĩa trước đó mà là một ký tự bình thường.

Đây là một ví dụ phức tạp hơn.

  SELE CT * 
FROM nhanvien
WHERE secret_hint LIKE 'H %!%' ESCAPE '!';

Kết quả trả về của điều kiện LIKE là nhân viên có secret_hint bắt đầu bằng 'H' và kết thúc bằng '%', chẳng hạn như 'Help%'.

Bạn có thể sử dụng ký tự bỏ qua với toàn bộ ký tự _ trong điều kiện LIKE.

  SEL ECT * 
FROM nhanvien
WHERE secret_hint LIKE 'H%!_' ESCAPE '!';

Ví dụ này trả về những nhân viên có secret_hint bắt đầu bằng 'H' và kết thúc bằng '_', chẳng hạn như 'Help_'.