Điều kiện tìm kiếm mà bạn chỉ định có thể chứa bất kỳ toán tử so sánh hoặc vị từ BETWEEN, DISTINCT, IN, LIKE, EXISTS, IS NULL và IS NOT NULL
Bạn có thể kết hợp hai vị từ bất kỳ với AND và OR. Ngoài ra, bạn có thể sử dụng từ khóa NOT để xác định rằng điều kiện tìm kiếm mà bạn muốn là giá trị phủ định của điều kiện tìm kiếm đã chỉ định. Mệnh đề WHERE có thể có bao nhiêu vị ngữ tùy thích
- VÀ nói rằng, để một hàng đủ điều kiện, hàng đó phải đáp ứng cả hai vị từ của điều kiện tìm kiếm. Ví dụ, để biết nhân viên nào trong bộ phận D21 được tuyển dụng sau ngày 31 tháng 12 năm 1987, hãy chỉ định.
... WHERE WORKDEPT = 'D21' AND HIREDATE > '1987-12-31'
- OR nói rằng, để một hàng đủ điều kiện, hàng đó có thể đáp ứng điều kiện được đặt bởi một trong hai hoặc cả hai vị từ của điều kiện tìm kiếm. Ví dụ: để tìm ra nhân viên nào ở bộ phận C01 hoặc D11, bạn có thể chỉ định.
... WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
Ghi chú. Bạn cũng có thể sử dụng IN để chỉ định yêu cầu này. LÀM VIỆC Ở ĐÂU [
7C01... WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
7,... WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
7D11... WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
7].... WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
- NOT nói rằng, để đủ điều kiện, một hàng không được đáp ứng các tiêu chí do điều kiện tìm kiếm hoặc vị từ theo sau NOT đặt ra. Ví dụ: để tìm tất cả nhân viên trong bộ phận E11 ngoại trừ những người có mã công việc bằng nhân viên phân tích, bạn có thể chỉ định.
... WHERE WORKDEPT = 'E11' AND NOT JOB = 'ANALYST'
Khi SQL đánh giá các điều kiện tìm kiếm có chứa các trình kết nối này, nó sẽ thực hiện theo một thứ tự cụ thể. Đầu tiên, SQL đánh giá các mệnh đề NOT, tiếp theo đánh giá các mệnh đề AND, sau đó là các mệnh đề OR
Bạn có thể thay đổi thứ tự đánh giá bằng cách sử dụng dấu ngoặc đơn. Các điều kiện tìm kiếm trong ngoặc đơn được đánh giá đầu tiên. Ví dụ: để chọn tất cả nhân viên thuộc phòng E11 và E21 có trình độ học vấn lớn hơn 12, bạn có thể chỉ định
...
WHERE EDLEVEL > 12 AND
[WORKDEPT = 'E11' OR WORKDEPT = 'E21']
Dấu ngoặc đơn xác định ý nghĩa của điều kiện tìm kiếm. Trong ví dụ này, bạn muốn tất cả các hàng có một
- giá trị WORKDEPT của E11 hoặc E21, và
- Giá trị EDLEVEL lớn hơn 12
Nếu bạn không sử dụng dấu ngoặc đơn
...
WHERE EDLEVEL > 12 AND WORKDEPT = 'E11'
OR WORKDEPT = 'E21'
Kết quả của bạn là khác nhau. Các hàng được chọn là các hàng có
- WORKDEPT = E11 và EDLEVEL > 12 hoặc
- WORKDEPT = E21, bất kể giá trị EDLEVEL là gì
Nếu bạn đang kết hợp nhiều phép so sánh bằng nhau, bạn có thể viết vị từ bằng AND như trong ví dụ sau
...
WHERE WORKDEPT = 'E11' AND EDLEVEL = 12 AND JOB = 'CLERK'
Bạn cũng có thể so sánh hai danh sách, ví dụ
...
WHERE [WORKDEPT, EDLEVEL, JOB] = ['E11', 12, 'CLERK']
Khi hai danh sách được sử dụng, mục đầu tiên trong danh sách đầu tiên được so sánh với mục đầu tiên trong danh sách thứ hai, v.v. Vì vậy, mỗi danh sách phải chứa cùng một số mục. Sử dụng danh sách giống như viết truy vấn bằng AND. Danh sách chỉ có thể được sử dụng với các toán tử so sánh bằng và không bằng
Truy vấn SQL để so khớp nhiều giá trị trong cùng một cột
Cải thiện bài viết
Lưu bài viết
Thích bài viết
- Độ khó. Chuyên gia
- Cập nhật lần cuối. 29 tháng 10 năm 2021
Cải thiện bài viết
Lưu bài viết
Trong SQL, để so khớp nhiều giá trị trong cùng một cột, chúng ta cần sử dụng một số từ đặc biệt trong truy vấn của mình. Dưới đây, 3 phương pháp được trình bày để đạt được điều này bằng cách sử dụng IN, LIKE và toán tử so sánh [>=]. Đối với bài viết này, chúng tôi sẽ sử dụng Microsoft SQL Server làm cơ sở dữ liệu của chúng tôi
Bước 1. Tạo cơ sở dữ liệu. Đối với điều này, hãy sử dụng lệnh dưới đây để tạo cơ sở dữ liệu có tên GeekForGeek
Truy vấn
CREATE DATABASE GeeksForGeeks
đầu ra
Bước 2. Sử dụng cơ sở dữ liệu GeekForGeek. Đối với điều này sử dụng lệnh dưới đây
Truy vấn
________số 8đầu ra
Bước 3. Tạo một bảng CARS bên trong cơ sở dữ liệu GeekForGeeks. Bảng này có 3 cột là CAR_NAME, COMPANY và COST chứa tên, hãng và giá của các loại xe
Truy vấn
CREATE TABLE CARS[ CAR_NAME VARCHAR[10], COMPANY VARCHAR[10], COST INT];
đầu ra
Bước 4. Mô tả cấu trúc của bảng CARS
Truy vấn
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
0đầu ra
Bước 5. Chèn 5 hàng vào bảng CARS
Truy vấn
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
1đầu ra
Bước 6. Hiển thị tất cả các hàng của bảng CARS
Truy vấn
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
2đầu ra
Bước 7. Truy xuất thông tin chi tiết của tất cả các xe ô tô thuộc các công ty TOYOTA và HONDA
Lưu ý – Sử dụng IN để so khớp nhiều giá trị i. e. TOYOTA và HONDA trong cùng một cột tôi. e. CÔNG TY
cú pháp
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
3Truy vấn
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
4đầu ra
Bước 8. Lấy thông tin chi tiết của tất cả những chiếc xe có tên bắt đầu bằng chữ C
Lưu ý – Sử dụng LIKE để so khớp nhiều giá trị i. e. CAMRY và CIAZ cùng cột i. e. CAR_NAME
cú pháp
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
5Truy vấn
...
WHERE WORKDEPT = 'C01' OR WORKDEPT = 'D11'
6đầu ra
Bước 9. Truy xuất thông tin chi tiết của tất cả những chiếc xe có giá lớn hơn hoặc bằng 30000
Lưu ý – Sử dụng toán tử so sánh >= để so khớp nhiều giá trị i. e. 30000, 50000 và 100000 trong cùng một cột i. e. GIÁ CẢ