T-SQL - Mệnh đề LIKE
Máy chủ MS SQL LIKEmệnh đề được sử dụng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử ký tự đại diện. Có hai ký tự đại diện được sử dụng cùng với toán tử LIKE -
- Dấu phần trăm (%)
- Dấu gạch dưới (_)
Dấu phần trăm đại diện cho không, một hoặc nhiều ký tự. Dấu gạch dưới thể hiện một số hoặc một ký tự. Các ký hiệu có thể được sử dụng kết hợp.
Cú pháp
Sau đây là cú pháp cơ bản của% và _.
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT *\column-list FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT *\column-list FROM table_name
WHERE column LIKE '_XXXX_'
Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND hoặc OR. XXXX có thể là bất kỳ giá trị số hoặc chuỗi nào.
Thí dụ
Sau đây là một số ví dụ cho thấy phần WHERE có mệnh đề LIKE khác nhau với các toán tử '%' và '_'.
Sr.No | Tuyên bố & Mô tả |
---|---|
1 | WHERE SALARY LIKE '200%' Tìm bất kỳ giá trị nào bắt đầu bằng 200 |
2 | WHERE SALARY LIKE '%200%' Tìm bất kỳ giá trị nào có 200 ở bất kỳ vị trí nào |
3 | WHERE SALARY LIKE '_00%' Tìm bất kỳ giá trị nào có 00 ở vị trí thứ hai và thứ ba |
4 | WHERE SALARY LIKE '2_%_%' Tìm bất kỳ giá trị nào bắt đầu bằng 2 và có độ dài ít nhất 3 ký tự |
5 | WHERE SALARY LIKE '%2' Tìm bất kỳ giá trị nào kết thúc bằng 2 |
6 | WHERE SALARY LIKE '_2%3' Tìm bất kỳ giá trị nào có số 2 ở vị trí thứ hai và kết thúc bằng số 3 |
7 | WHERE SALARY LIKE '2___3' Tìm bất kỳ giá trị nào trong một số có năm chữ số bắt đầu bằng 2 và kết thúc bằng 3 |
Hãy xem xét bảng KHÁCH HÀNG có các bản ghi sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
2 Khilan 25 Delhi 1500.00
3 kaushik 23 Kota 2000.00
4 Chaitali 25 Mumbai 6500.00
5 Hardik 27 Bhopal 8500.00
6 Komal 22 MP 4500.00
7 Muffy 24 Indore 10000.00
Lệnh sau là một ví dụ, sẽ hiển thị tất cả các bản ghi từ bảng CUSTOMERS trong đó SALARY bắt đầu bằng 200.
SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Lệnh trên sẽ tạo ra kết quả sau.
ID NAME AGE ADDRESS SALARY
1 Ramesh 32 Ahmedabad 2000.00
3 kaushik 23 Kota 2000.00