sql >> Databáze >  >> RDS >> Sqlserver

Tři podmínky v jednom sloupci tabulky

Možná jsem špatně pochopil váš požadavek, není to tak snadné?

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

Upravit :Chcete-li tedy použít parametr k odpovídajícímu filtrování, podívejte se:

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

Můžete také použít CASE v klauzuli where, ačkoli není doporučeno .



  1. Manipulace s uživatelskými daty v MySQL

  2. Porovnávání bez rozlišování akcentů a velkých a malých písmen v Oracle s LIKE

  3. Jak rozdělit čárkami oddělený řetězec záznamů a následně je uspořádat v MySQL?

  4. Načtení .csv MySQL se nezdařilo z důvodu Nelze přidat nebo aktualizovat podřízený řádek:Omezení cizího klíče se nezdařilo