Tags:

SQL | Wildcard – Toán tử đại diện trong SQL

WILDCARD hay còn được gọi là kí tự đại diện được sử dụng cùng với câu lệnh LIKE trong SQL để so sánh một giá trị với các giá trị tương tự.

SQL hỗ trợ hai toán tử đại diện kết hợp với toán tử LIKE là kí hiệu phần trăm (%) và dấu gạch dưới (_).

Operator Description
% Đại diện cho một hoặc nhiều ký tự.
_ Đại diện cho cho một kí tự đơn.
[range_of_characters] Khớp với một tập hợp hay một khoảng phạm vi ký tự
[^range_of_characters] or [!range of characters] Không khớp với một tập hợp hay một khoảng phạm vi ký tự

Cú pháp sử dụng WILDCARD trong SQL

SELECT column1,column2 FROM table_name WHERE column LIKE wildcard_operator;
column1 , column2: fields in the table
table_name: name of table
column: name of field used for filtering data

Ví dụ sử dụng toán tử đại diện

Ví dụ cho bảng Student

Ví dụ 1: Lấy các Student có NAME kết thúc bằng chữ T.

SELECT * FROM Student WHERE NAME LIKE '%T';

Output

ROLL_NO NAME ADDRESS PHONE Age
3 SUJIT ROHTAK XXXXXXXXXX 20
3 SUJIT ROHTAK XXXXXXXXXX 20

Ví dụ 2: Lấy các Student có tên bắt đầu bằng RAMES, 

SELECT * FROM Student WHERE NAME LIKE 'RAMES_';

Output

ROLL_NO NAME ADDRESS PHONE Age
2 RAMESH GURGAON XXXXXXXXXX 18

Ví dụ 3: Lấy các Student có ADDRESS chứa các ký tự ‘a’, ‘b’, ‘c’.

SELECT * FROM Student WHERE ADDRESS LIKE '%[A-C]%';

Output

ROLL_NO NAME ADDRESS PHONE Age
2 RAMESH GURGAON XXXXXXXXXX 18
2 RAMESH GURGAON XXXXXXXXXX 18
3 SUJIT ROHTAK XXXXXXXXXX 20
3 SUJIT ROHTAK XXXXXXXXXX 20

Ví dụ 4: Lấy các Student có ADDRESS không chứa các ký tự ‘a’, ‘b’, ‘c’.

SELECT * FROM Student WHERE ADDRESS LIKE '%[^A-C]%';

Output:

ROLL_NO NAME ADDRESS PHONE Age
1 Ram Delhi XXXXXXXXXX 18
4 SURESH Delhi XXXXXXXXXX 18

Ví dụ 5: Lấy các Student với trường PHONE có ‘9’ ở vị trí đầu tiên và ‘5’ ở vị trí thứ 4.

SELECT * FROM Student WHERE PHONE LIKE '9__5%';

Ví dụ 6: Tìm nạp các bản ghi từ bảng Sinh viên với ADDRESS chứa tổng cộng 6 ký tự.

SELECT * FROM Student WHERE ADDRESS LIKE '______';

Output:

ROLL_NO NAME ADDRESS PHONE Age
3 SUJIT ROHTAK XXXXXXXXXX 20
3 SUJIT ROHTAK XXXXXXXXXX 20

Ví dụ 7: Tìm nạp các bản ghi từ bảng Sinh viên với ĐỊA CHỈ chứa ‘OH’ ở bất kỳ vị trí nào và tập kết quả không được chứa dữ liệu trùng lặp.

SELECT DISTINCT * FROM Student WHERE ADDRESS LIKE '%OH%';

Output:

ROLL_NO NAME ADDRESS PHONE Age
3 SUJIT ROHTAK XXXXXXXXXX 20

Trên đây là tất cả các ví dụ có thể mô tả hầu hết các trường hợp chúng ta cần sử dụng với toán tử đại diện. Hy vọng nó sẽ giúp ích cho các bạn.

Nguồn tham khảo

https://www.geeksforgeeks.org/sql-wildcard-operators/

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x