So khớp mẫu trong truy vấn SQL

Sử dụng ký tự đại diện cho đối sánh không chính xác

So khớp mẫu SQL cho phép bạn tìm kiếm các mẫu trong dữ liệu, nếu bạn không biết chính xác từ hoặc cụm từ bạn đang tìm kiếm. Kiểu truy vấn SQL này sử dụng các ký tự đại diện để khớp với một mẫu, thay vì chỉ định nó một cách chính xác. Ví dụ: bạn có thể sử dụng ký tự đại diện "C%" để khớp với bất kỳ chuỗi nào bắt đầu bằng chữ C.

Sử dụng toán tử LIKE

Để sử dụng biểu thức ký tự đại diện trong truy vấn SQL, hãy sử dụng toán tử LIKE trong mệnh đề WHERE và kèm theo mẫu trong dấu ngoặc đơn.

Sử dụng ký tự đại diện% để thực hiện tìm kiếm đơn giản

Để tìm kiếm bất kỳ nhân viên nào trong cơ sở dữ liệu của bạn với một tên cuối cùng bắt đầu bằng chữ cái C, hãy sử dụng câu lệnh Transact-SQL sau đây:

CHỌN * TỪ nhân viên WHERE last_name LIKE 'C%'

Bỏ qua các mẫu bằng cách sử dụng từ khóa NOT

Sử dụng từ khóa NOT để chọn các bản ghi không khớp với mẫu. Ví dụ, truy vấn này trả về tất cả các bản ghi có tên cuối cùng không bắt đầu bằng C:

CHỌN * TỪ nhân viên WHERE last_name KHÔNG THÍCH 'C%'

Kết hợp mẫu bất kỳ ở đâu bằng cách sử dụng% Wildcard hai lần

Sử dụng hai phiên bản của ký tự đại diện % để khớp với một mẫu cụ thể ở bất kỳ đâu. Ví dụ này trả về tất cả các bản ghi có chứa C ở bất kỳ đâu trong họ:

CHỌN * TỪ nhân viên WHERE last_name LIKE '% C%'

Tìm một Pattern Match tại một vị trí cụ thể

Sử dụng ký tự đại diện _ để trả về dữ liệu tại một vị trí cụ thể. Ví dụ này chỉ phù hợp nếu C xảy ra ở vị trí thứ ba của cột tên cuối cùng:

CHỌN * TỪ nhân viên WHERE last_name LIKE '_ _C%'

Biểu thức ký tự đại diện được hỗ trợ trong SQL giao dịch

Có một số biểu thức ký tự đại diện được hỗ trợ bởi Transact SQL:

Kết hợp các ký tự đại diện cho các mẫu phức tạp

Kết hợp các ký tự đại diện này trong các mẫu phức tạp để thực hiện các truy vấn nâng cao hơn. Ví dụ: giả sử bạn cần xây dựng danh sách tất cả nhân viên của bạn có tên bắt đầu bằng một chữ cái từ nửa đầu của bảng chữ cái nhưng không kết thúc bằng nguyên âm. Bạn có thể sử dụng truy vấn sau:

CHỌN * TỪ nhân viên WHERE last_name LIKE '[am]% [^ aeiou]'

Tương tự, bạn có thể xây dựng danh sách tất cả các nhân viên có tên cuối cùng gồm bốn ký tự chính xác bằng cách sử dụng bốn trường hợp của mẫu _ :

CHỌN * TỪ nhân viên WHERE last_name LIKE '____'

Như bạn có thể nói, việc sử dụng các khả năng khớp mẫu của SQL cung cấp cho người dùng cơ sở dữ liệu khả năng vượt ra ngoài các truy vấn văn bản đơn giản và thực hiện các hoạt động tìm kiếm nâng cao.