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

Три условия в една колона на таблицата

Може би съм разбрал погрешно вашето изискване, не е ли толкова лесно?

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

Редактиране :Значи искате да използвате параметър за съответно филтриране, вижте:

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

Можете също да използвате CASE в клауза where, въпреки че не се препоръчва .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изявления за профилиране вътре в дефинирана от потребителя функция

  2. SQL ревизиране на таблични данни в по-компактна форма

  3. MMC не можа да създаде конзолната добавка. Грешка в мениджъра на конфигурацията на SQL Server

  4. SQL изпълнява променлива +1, докато променливата достигне 52?

  5. Предоставяне на разрешения на ниво таблица в SQL Server