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

WHERE IS NULL, IS NOT NULL eller NO WHERE-sætning afhængigt af SQL Server-parameterværdien

Her er hvordan du kan løse dette ved at bruge en enkelt WHERE klausul:

WHERE (@myParm = value1 AND MyColumn IS NULL)
OR  (@myParm = value2 AND MyColumn IS NOT NULL)
OR  (@myParm = value3)

En naiv brug af CASE-sætningen virker ikke , med dette mener jeg følgende:

SELECT Field1, Field2 FROM MyTable
WHERE CASE @myParam
    WHEN value1 THEN MyColumn IS NULL
    WHEN value2 THEN MyColumn IS NOT NULL
    WHEN value3 THEN TRUE
END

Det er muligt at løse dette ved hjælp af en case-opgørelse, se onedaywhens svar



  1. Amazon RDS til PostgreSQL-alternativer - ClusterControl til PostgreSQL

  2. LIMIT søgeord på MySQL med forberedt erklæring

  3. RYD SKÆRM - Oracle SQL Developer genvej?

  4. Hvordan forbinder man Android-app til MySQL-database?