sql >> Database >  >> RDS >> Sqlserver

Drie voorwaarden op één kolom van de tabel

Misschien heb ik uw eis verkeerd begrepen, is dat niet zo eenvoudig?

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

Bewerken :Dus je wilt een parameter gebruiken om dienovereenkomstig te filteren, kijk eens:

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

U kunt ook CASE . gebruiken in waar-clausule, hoewel het niet wordt aanbevolen .



  1. Hoe krijg ik twee datetime-velden in dagen en uren in de postgresql-weergave?

  2. De SELECT-machtiging is geweigerd voor het object 'Address', database 'CNET_85731', schema 'dbo'

  3. MySQL selecteren met CONCAT-voorwaarde

  4. MySQL:verzoek om een ​​JSON-object te maken met Array