Các toán tử so sánh trong SQL Server

Khác trong SQL Server và <> trong SQL Server chỉ là một vài trong số những toán tử so sánh phổ biến. Dưới đây là những điều bạn cần biết về toán tử khác trong SQL Server.

SQL Server là kiến thức mà mọi lập trình viên đều cần biết. SQL Server là phần mềm đặc biệt do Microsoft phát triển dành cho hệ thống quản trị cơ sở dữ liệu. Nó được dùng chủ yếu để tạo, duy trì và triển khai hệ thống quản lý database quan hệ.

Hiện SQL Server được sử dụng rất phổ biến nhất là khi việc bảo mật dữ liệu trong ngành công nghệ thông tin ngày càng trở nên quan trọng. Mặt khác, nó còn được tối ưu để chạy database lớn tới tera byte, có thể phục vụ hàng ngàn người dùng cùng lúc.

Về cơ bản, học SQL Server không khó. Bạn cần bắt đầu từ những kiến thức cơ bản nhất. Quantrimang.com là nguồn học SQL Server đáng thử cho bạn. Trong bài học này, chúng ta hãy cùng nhau tìm hiểu về toán tử so sánh trong SQL Server nhé!

Trong SQL, bạn có sẵn tới 6 toán tử so sánh. Chúng giúp lập trình viên chạy truy vấn để triển khai các hoạt động khác nhau. Ví dụ, bạn sẽ dùng lệnh WHERE với các toán tử theo điều kiện để đạt được điều đó trong SQL. Ở bài viết này, hãy cùng nhau tìm hiểu chi tiết về các toán tử so sánh khi sử dụng SQL nhé!

Bài viết sẽ đưa ra các toán tử so sánh được dùng để kiểm tra tính cân bằng cùng với các toán tử nâng cao hơn trong SQL Server. Bạn đọc có thể tham khảo thêm bài viết Toán tử trong SQL.

Toán tử so sánh trong SQL Server là gì?

Toán tử so sánh trong SQL Server được dùng để so sánh hai giá trị. Vì thế, bạn sẽ thấy chúng khi so sánh một biểu thức này với biểu thức khác. Kết quả của phép so sánh có thể là True, False hoặc Unknown (toán tử có một hoặc hai biểu thức NULL trả về kết quả UNKNOWN).

Lưu ý, bạn có thể dùng toán tử so sánh trên tất cả biểu thức, ngoại trừ biểu thức của loại văn bản, ảnh hoặc ntext.

Toán tử so sánh được dùng trong mệnh đề WHERE để xác định lựa chọn bản ghi nào. Đây là danh sách các toán tử so sánh bạn có thể dùng trong SQL Server (T-SQL).

Toán tử Mô tả
=Ngang bằng
<>Không bằng
!=Không bằng
>Lớn hơn
>=Lớn hơn hoặc bằng
<Nhỏ hơn
<=Nhỏ hơn hoặc bằng
!>Không lớn hơn
!<Không nhỏ hơn
IN ()Phù hợp với giá trị trong danh sách
NOTKhông đáp ứng điều kiện
BETWEENNằm trong một khoảng (gồm cả giá trị đầu và cuối)
IS NULLGiá trị NULL
IS NOT NULLGiá trị không NULL
LIKEKết hợp mẫu với % và _
EXISTSĐiều kiện được đáp ứng nếu truy vấn nội bộ (subquery) trả lại ít nhất 1 hàng

Kiểu dữ liệu Boolean

Kết quả của toán tử so sánh có kiểu dữ liệu Boolean. Nó có 3 giá trị: TRUE, FALSE và UNKNOWN. Các biểu thức trả về một kiểu dữ liệu Boolean gọi là biểu thức Boolean.

Khác các kiểu dữ liệu khác trong SQL Server, một kiểu dữ liệu Boolean không thể được xem là kiểu dữ liệu của một cột hay biến trong bảng và không thể được trả về dưới dạng một tệp kết quả.

Khi SET ANSI_NULLS là ON, toán tử có một hoặc hai biểu thức NULL trả về UNKNOW. Khi SET ANSI_NULLS là OFF, quy tắc tương tự được áp dụng, ngoại trừ toán tử ngang bằng và không bằng. Khi SET ANSI_NULLS là OFF, những toán tử này sẽ là NULL, tương đương với mọi NULL khác và chỉ trả về TRUE hoặc FALSE.

Các biểu thức với kiểu dữ liệu Boolean được dùng trong mệnh đề WHERE để lọc các hàng áp ứng điều kiện tìm kiếm và các lệnh ngôn ngữ điều khiển luồng, chẳng hạn như IF và WHILE, ví dụ:

-- Uses AdventureWorks  
  
DECLARE @MyProduct INT;  
SET @MyProduct = 750;  
IF (@MyProduct <> 0)  
   SELECT ProductID, Name, ProductNumber  
   FROM Production.Product  
   WHERE ProductID = @MyProduct;

Còn có nhiều toán tử so sánh trong SQL Server và Transact-SQL. Dưới đây là cách dùng một số toán tử thông dụng.

Ví dụ - Toán tử ngang hàng

SELECT *
FROM nhanvien
WHERE ten = ‘Jane’;

Ở ví dụ này, lệnh SELECT sẽ trả lại kết quả là các hàng từ bảng nhanvien với các nhân viên có tên là Jane.

Ví dụ - Toán tử không ngang hàng

Trong SQL Server, có thể dùng <> hoặc != để kiểm tra tính không ngang hàng trong truy vấn.

SELECT *
FROM nhanvien
WHERE ten <> ‘Jane’;

Lệnh SELECT trên đây sẽ trả về các hàng trong bảng nhanvien có tên không phải là Jane. Lệnh trên có thể viết cách khác như sau. Cả 2 truy vấn đều cho ra cùng 1 bộ kết quả.

SELECT *
FROM nhanvien
WHERE ten != ‘Jane’;

Ví dụ - Toán tử lớn hơn

SELECT *
FROM nhanvien
WHERE nhanvien_id > 3000;

Kết quả tra về của lệnh SELECT nói trên là các hàng trong bảng nhanvien mà ID của nhân viên lớn hơn 3000, ID nhân viên bằng 3000 sẽ không nằm trong kết quả.

Ví dụ - Toán tử lớn hơn hoặc bằng

SELECT *
FROM nhanvien
WHERE nhanvien_id >= 3000;

Ví dụ trên sẽ trả về các hàng có ID nhân viên lớn hơn hoặc bằng 3000 trong bảng nhanvien.

Ví dụ - Toán tử nhỏ hơn

SELECT *
FROM nhanvien
WHERE nhanvien_id < 500;

Tương tự, kết quả của lệnh này là các hàng trong băng nhanvien có ID của nhân viên nhỏ hơn 500, không bao gồm ID 500.

Ví dụ - Toán tử nhỏ hơn hoặc bằng

SELECT *
FROM nhanvien
WHERE nhanvien_id <= 500;

Kết quả của lệnh này là các hàng trong bảng nhanvien có nhanvien_id nhỏ hơn hoặc bằng 500.

Ví dụ - Toán tử nâng cao hay toán tử logic

Các toán tử nâng cao dưới đây sẽ có từng bài hướng dẫn cụ thể cho chúng.

IN ()
NOT
BETWEEN
IS NULL
IS NOT NULL
LIKE
EXISTS

Ngoài các toán tử so sánh, bạn cũng cần biết những toán tử logic sau trong SQL:

Toán tử

Mô tả

ALL

TRUE nếu tất cả giá trị truy vấn phụ đều đáp ứng điều kiện

AND

TRUE nếu tất cả điều kiện được phân tách bởi AND đều là TRUE

ANY

TRUE nếu giá trị truy vấn phụ bất kỳ đều đáp ứng điều kiện

BETWEEN

TRUE nếu toán hạng nằm trong phạm vi so sánh

EXISTS

TRUE nếu truy vấn phụ trả về một hoặc nhiều bản ghi

IN

TRUE nếu toán hạng bằng một trong số danh sách của các biểu thức

LIKE

TRUE nếu toán hạng khớp với một mẫu

NOT

Hiện một bản ghi nếu điều kiện là NOT TRUE

OR

TRUE nếu điều kiện bất kỳ được phân tách bởi OR là TRUE

SOME

TRUE nếu giá trị truy vấn phụ bất kỳ đáp ứng điều kiện

Bài trước: Mệnh đề FROM trong SQL Server

Bài tiếp: Mệnh đề WHERE trong SQL Server

Thứ Tư, 27/09/2023 16:55
3,515 👨 117.290
0 Bình luận
Sắp xếp theo
    ❖ SQL Server