So sánh 2 like trong 1 where sql năm 2024

Trong ngôn ngữ truy vấn SQL (Structured Query Language), mệnh đề WHERE được sử dụng để lọc dữ liệu từ một bảng cơ sở dữ liệu dựa trên một điều kiện. Nó cho phép chúng ta truy xuất chỉ các hàng thỏa mãn điều kiện xác định và loại bỏ những hàng không phù hợp.

Mệnh đề WHERE là một phần quan trọng trong câu truy vấn SELECT và đóng vai trò quan trọng trong việc trích xuất dữ liệu hữu ích từ cơ sở dữ liệu.

Cú pháp của WHERE

SELECT cot1, cot2,…. cotN FROM TEN_BANG WHERE [DIEU_KIEN]

Các toán tử dùng trong câu lệnh WHERE để lọc dữ liệu

Nhóm Toán tử Mô tả Toán tử so sánh = Bằng <> hoặc != Không bằng > Lớn hơn < Nhỏ hơn >= Lớn hơn hoặc bằng <= Nhỏ hơn hoặc bằng Toán tử logical AND Trả về các bản ghi đáp ứng tất cả các điều kiện được phân tách bằng “AND” trong mệnh đề WHERE OR Trả về các bản ghi đáp ứng bất kỳ điều kiện nào được phân tách bằng OR trong mệnh đề WHERE NOT Trả về các bản ghi không thỏa mãn bất kỳ điều kiện nào trong mệnh đề WHERE Toán tử SQL (NOT) BETWEEN Trả về các giá trị (không) nằm trong một phạm vi nhất định (NOT) IN Trả về các bản ghi đáp ứng bất kỳ điều kiện nào có trong tệp điều kiện. (Giống OR) IS NULL / IS NOT NULL Trả về các bản ghi có giá trị NULL / Không NULL trong các tệp đã cho (NOT) LIKE Trả về các bản ghi khớp / không khớp với một mẫu đã chỉ định trong một cột.

Ví dụ:

SELECT *   FROM dbo.DimProduct  WHERE ListPrice >= 400 AND Color = 'Black'

Giải thích: Từ bảng dữ liệu DimProduct, lấy ra tất cả các bản ghi có giá trị trong cột ListPrice lớn hơn hoặc bảng 400 và giá trị trong cột Color là “Black”.

Giải thích kỹ hơn về các toán tử SQL

  1. Toán tử BETWEEN
  2. Toán tử BETWEEN chọn các giá trị trong một phạm vi nhất định. Trong đó, các giá trị có thể là số, văn bản hoặc ngày tháng.
  3. VD:

SELECT *   FROM DimProduct   WHERE ListPrice BETWEEN 25 AND 34 

– Giải thích ví dụ: Từ bảng dữ liệu DimProduct, lấy ra tất cả các bản ghi có giá trị trong cột ListPrice nằm trong khoảng 25 đến 34 (bao gồm cả giá trị 25 và 34)

  1. Toán tử IN

Toán tử IN cho phép ta chỉ định nhiều giá trị trong mệnh đề WHERE (chính một cách viết tắt của nhiều điều kiện OR).

  • VD:

SELECT *   FROM DimProduct   WHERE Color IN ('Black', 'White') 

  • Giải thích ví dụ: Từ bảng dữ liệu DimProduct, lấy ra tất cả các bản ghi có giá trị trong cột Color là “Black” hoặc “White”.
  • Toán tử IS NULL
  • Toán tử IS NULL được dùng để kiểm tra giá trị NULL. Giá trị NULL trong một bảng là một giá trị trong trường thông tin bị bỏ trống, hay nói cách khác, một trường không có giá trị nào.
  • VD:

SELECT *   FROM DimProduct   WHERE ListPrice IS NULL 

  • Giải thích ví dụ: Từ bảng dữ liệu DimProduct, lấy ra các bản ghi có giá trị ở cột ListPrice là NULL.
  • Toán tử LIKE
  • Toán tử LIKE được 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ử đại diện (wildcard).
  • Wildcard trong SQL là một ký tự đặc biệt được sử dụng để thay thế hoặc mô phỏng một hoặc nhiều ký tự trong một mẫu chuỗi. Các wildcard phổ biến trong SQL bao gồm: Ký tự Wildcard Mô tả Minh họa % % Bất kỳ chuỗi nào có hoặc nhiều ký tự. WHERE Title LIKE ‘%computer%’: tìm tất cả các tiêu đề có chứa từ ‘computer’ _ Một ký tự đơn lẻ WHERE Firstname LIKE ‘_ean’: tìm tất cả các tên có bốn chữ cái kết thúc bằng ean (VD: Sean, Dean,…) [] Bất kỳ ký tự đơn nào trong phạm vi đã chỉ định WHERE Firstname LIKE ‘[A-P]an’: tìm tất cả tên kết thúc bằng “an” và bắt đầu với bất kỳ ký tự đơn nào giữa A và P, ví dụ “Lan”, “Han”,… [^] Bất kỳ ký tự đơn nào không nằm trong phạm vi đã chỉ định WHERE Name LIKE ‘%[^ab]%: tìm tất cả tên chứa ký tự khác ngoài ‘a’ và ‘b’

Data types (Kiểu dữ liệu) trong SQL Server

Các kiểu dữ liệu trong SQL Server dùng để xác định loại giá trị có thể được lưu trữ trong một cột trong bảng. Để sử dụng mệnh đề WHERE trong SQL trôi chảy, chúng ta cần nắm vững các kiểu dữ liệu trong SQL Server.

Dưới đây là một số kiểu dữ liệu phổ biến:

  1. Kiểu dữ liệu số:
  2. INT: Số nguyên.
  3. FLOAT: Số thực có độ chính xác cao.
  4. DECIMAL/NUMERIC: Số thực có độ chính xác cố định.
  5. Kiểu dữ liệu chuỗi:
  6. VARCHAR: Chuỗi ký tự có độ dài biến đổi.
  7. NVARCHAR: Chuỗi ký tự Unicode có độ dài biến đổi.
  8. CHAR: Chuỗi ký tự có độ dài cố định.
  9. NCHAR: Chuỗi ký tự Unicode có độ dài cố định.
  10. Kiểu dữ liệu ngày tháng:
  11. DATE: Ngày (yyyy-mm-dd).
  12. TIME: Thời gian (hh:mm:ss).
  13. DATETIME: Ngày và thời gian (yyyy-mm-dd hh:mm:ss).
  14. DATETIME2: Ngày và thời gian với độ chính xác cao hơn.

Đây chỉ là một số kiểu dữ liệu phổ biến, SQL Server còn hỗ trợ nhiều kiểu dữ liệu khác như kiểu dữ liệu địa lý, XML, JSON và các kiểu dữ liệu người dùng tự định nghĩa.

Tìm hiểu kỹ hơn về các kiểu dữ liệu trong SQL Server tại đây.

Lưu ý khi sử dụng các toán tử với giá trị NULL

Trong SQL, giá trị NULL được sử dụng để đại diện cho dữ liệu bị thiếu hoặc không xác định. Khi sử dụng WHERE với giá trị NULL, cần lưu ý những điều sau:

  1. Toán tử “=” : Toán tử này không thể được sử dụng để so sánh giá trị NULL với bất kỳ giá trị nào khác, bởi vì kết quả của phép so sánh sẽ luôn là NULL. Thay vào đó, để kiểm tra giá trị NULL, bạn nên sử dụng toán tử IS NULL.
  2. Toán tử “<>”: Toán tử này cũng không thể sử dụng để so sánh giá trị NULL. Kết quả của phép so sánh sẽ luôn là NULL. Tương tự như toán tử “=”, bạn nên sử dụng toán tử IS NOT NULL để kiểm tra giá trị không phải NULL.
  3. Toán tử IN: Khi sử dụng toán tử IN, giá trị NULL không thể so sánh trực tiếp với danh sách giá trị. Nếu bạn muốn kiểm tra xem giá trị có trong danh sách và không phải là NULL, bạn cần thêm điều kiện OR column_name IS NULL.
  4. Toán tử IS NULL và IS NOT NULL: Đây là các toán tử đặc biệt được sử dụng để kiểm tra giá trị NULL. Toán tử IS NULL trả về ‘true’ nếu giá trị là NULL, toàn tử IS NOT NULL cũng trả về ‘true’ nếu giá trị không phải NULL.

Lưu ý rằng kết quả của phép so sánh với NULL (bao gồm cả các phép toán và các toán tử so sánh khác) thường sẽ trả về giá trị NULL. Do đó, cẩn thận khi sử dụng các toán tử và thực hiện kiểm tra giá trị NULL trong câu truy vấn.

Nếu như bạn vẫn chưa biết NULL là gì, hãy tham khảo bài viết với cách giải thích vui vẻ dưới đây của chúng mình nhé!

So sánh 2 like trong 1 where sql năm 2024

Kết luận

Khi sử dụng WHERE trong SQL, cần xác định rõ các điều kiện để lọc dữ liệu một cách chính xác và hiệu quả. Đồng thời, cần hiểu rõ về kiểu dữ liệu của các cột trong cơ sở dữ liệu để thực hiện sử dụng các toán tử và lọc dữ liệu đúng cách. Mệnh đề WHERE cung cấp sự linh hoạt trong việc truy vấn dữ liệu, giúp chúng ta tìm ra các thông tin cần thiết từ cơ sở dữ liệu dễ dàng và nhanh chóng.