sql >> Database teknologi >  >> RDS >> Sqlserver

Tre betingelser på én kolonne i tabellen

Måske har jeg misforstået dit krav, er det ikke så nemt?

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

Rediger :Så du vil bruge en parameter til at filtrere i overensstemmelse hermed, så tag et kig:

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

Du kan også bruge CASE i where-klausulen, selvom det ikke anbefales .



  1. SQL Server 2008:Hvor sikker er en CLR Stored Procedure, der indlæser ikke-administrerede biblioteker

  2. Kolonnenavn gentages i forespørgselsresultater

  3. Registrerer UNIX tidszone?

  4. Hvordan vælger man tæller med Laravels flydende forespørgselsbygger?