Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Клауза WHERE IS NULL, IS NOT NULL или NO WHERE в зависимост от стойността на параметъра на SQL Server

Ето как можете да решите това, като използвате един единствен WHERE клауза:

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

Наивното използване на израза CASE не работи , с това имам предвид следното:

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

Възможно е да решите това с помощта на изявление за case, вижте отговора на onedaywhen



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пример за вмъкване на SQL Server

  2. Разбиране на оператора DROP TABLE в SQL Server

  3. Как да използвате клаузата Where в Select Statement в SQL Server - SQL Server / TSQL Урок, част 109

  4. Консолидиране на екземпляр на SQL Server чрез клъстериране и подреждане

  5. Увеличаване на размера на базата данни на SQL Server с помощта на хронология на архивиране