sql >> Database >  >> RDS >> Sqlserver

WHERE IS NULL, IS NOT NULL of NO WHERE-clausule, afhankelijk van de parameterwaarde van SQL Server

Hier leest u hoe u dit kunt oplossen met een enkele WHERE clausule:

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

Een naïef gebruik van de CASE-instructie werkt niet , hiermee bedoel ik het volgende:

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

Het is mogelijk om dit op te lossen met een case-statement, zie het antwoord van onedaywhen



  1. Oracle Pivot-query geeft kolommen met aanhalingstekens rond de kolomnamen. Wat?

  2. Microsoft Azure:wat het is en hoe uw bedrijf hiervan kan profiteren

  3. Is het mogelijk om een ​​tekstbestand uit te voeren vanuit een SQL-query?

  4. Alles wat u moet weten over coderingsstandaarden voor SQL-query's