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

Ba điều kiện trên một cột của bảng

Có lẽ tôi đã hiểu sai yêu cầu của bạn, nó có dễ dàng như vậy không?

-- 1.) If User want all rows 
SELECT * FROM @tbl 

-- 2.) If user want rows where ID is NULL
SELECT * FROM @tbl 
WHERE ID IS NULL

-- 3.) If user want rows where ID is NOT NULL
SELECT * FROM @tbl 
WHERE ID IS NOT NULL 

Chỉnh sửa :Vì vậy, bạn muốn sử dụng một tham số để lọc cho phù hợp, hãy xem:

SELECT * FROM @tbl 
WHERE   @FilterID = 1                      -- returns all rows
OR    ( @FilterID = 2 AND ID IS NULL)      -- returns all null-rows
OR    ( @FilterID = 3 AND ID IS NOT NULL)  -- returns all not null rows

Bạn cũng có thể sử dụng CASE trong mệnh đề where, mặc dù nó không được khuyến nghị .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có thể đặt lược đồ mặc định từ chuỗi kết nối không?

  2. Điều gì đại diện cho một đôi trong máy chủ sql?

  3. SQL bỏ qua một phần của WHERE nếu tham số là null

  4. Flask-SQLAlchemy đếm bản ghi khác nhau cho .count () và .all ()

  5. ghi tên người dùng trong bộ điều khiển api web khi bảng cơ sở dữ liệu lưu trữ người dùng dưới dạng số nguyên