Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Drei Bedingungen in einer Tabellenspalte

Vielleicht habe ich deine Anforderung falsch verstanden, ist das nicht so einfach?

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

Bearbeiten :Wenn Sie also einen Parameter verwenden möchten, um entsprechend zu filtern, sehen Sie sich Folgendes an:

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

Sie können auch CASE verwenden in der where-Klausel, obwohl es nicht empfohlen wird .