Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Trzy warunki na jednej kolumnie stołu

Może źle zrozumiałem twoje wymagania, czy to nie takie proste?

-- 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 

Edytuj :Więc chcesz użyć parametru do odpowiedniego filtrowania, spójrz:

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

Możesz także użyć CASE w klauzuli where, chociaż nie jest to zalecane .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Stół z dużą ilością kolumn

  2. Błąd — transakcja powiązana z bieżącym połączeniem została zakończona, ale nie została usunięta

  3. Łączenie SQL Server 2008 z Javą:Logowanie nie powiodło się z powodu błędu użytkownika

  4. Problemy z wydajnością programu SQL Server 2012 Enterprise Edition w ramach licencji CAL

  5. Tymczasowy zakres stołu?