Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Mệnh đề WHERE IS NULL, IS NOT NULL hoặc NO WHERE tùy thuộc vào giá trị tham số SQL Server

Đây là cách bạn có thể giải quyết vấn đề này bằng cách sử dụng một WHERE duy nhất mệnh đề:

WHERE (@myParm = value1 AND MyColumn IS NULL)
OR  (@myParm = value2 AND MyColumn IS NOT NULL)
OR  (@myParm = value3)

Cách sử dụng câu lệnh CASE ngây thơ không hoạt động , ý tôi là như sau:

SELECT Field1, Field2 FROM MyTable
WHERE CASE @myParam
    WHEN value1 THEN MyColumn IS NULL
    WHEN value2 THEN MyColumn IS NOT NULL
    WHEN value3 THEN TRUE
END

Có thể giải quyết vấn đề này bằng cách sử dụng một câu lệnh tình huống, hãy xem câu trả lời của onedaywhen



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo chuỗi băm MD5 với T-SQL

  2. Các loại con trỏ máy chủ SQL - Sự khác biệt giữa con trỏ địa phương và toàn cầu là gì | Hướng dẫn sử dụng SQL Server / TSQL

  3. Quét ngược chỉ mục SQL Server:Hiểu, điều chỉnh

  4. Truy vấn SQL để tìm ngày cuối cùng của tháng

  5. Làm thế nào để tìm các hàng liên tiếp dựa trên giá trị của một cột?