sql >> Databáze >  >> RDS >> Sqlserver

WHERE IS NULL, IS NOT NULL nebo NO WHERE klauzule v závislosti na hodnotě parametru SQL Server

Zde je návod, jak to můžete vyřešit pomocí jediného WHERE klauzule:

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

Naivní použití příkazu CASE nefunguje , mám na mysli následující:

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

Je možné to vyřešit pomocí příkazu case, viz odpověď onedaywhen



  1. Alternativní ovladače Oracle pro .net

  2. 3 způsoby, jak vygenerovat skript CREATE TABLE z existující tabulky v SQLite

  3. Jak zvýšit výjimku v PL/SQL?

  4. MySQL Trigger, který za určitých podmínek zabrání INSERT