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

Комбиниране на множество условия в оператор за един случай в Sql Server

Можете да поставите условието след WHEN клауза, така:

SELECT
  CASE
    WHEN PAT_ENT.SCR_DT is not null and PAT_ENTRY.ELIGIBILITY is null THEN 'Favor'
    WHEN PAT_ENT.SCR_DT is not null and PAT_ENTRY.EL = 'No' THEN 'Error'
    WHEN PAT_ENTRY.EL = 'Yes' and ISNULL(DS.DES, 'OFF') = 'OFF' THEN 'Active'
    WHEN DS.DES = 'N' THEN 'Early Term'
    WHEN DS.DES = 'Y' THEN 'Complete'
  END
FROM
  ....

Разбира се, може да се направи аргументът, че сложни правила като това принадлежат на вашия бизнес логически слой, а не на съхранена процедура в базата данни...



  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. Как да изчистя SqlDependency от паметта на SQL Server?

  4. Използване на 3 актуализации в една и съща процедура за съхраняване? Малка грешка

  5. SQL Server:CREATE ASSEMBLY за сглобка „Тест“ е неуспешна, защото сглобката „Тест“ е деформирана или не е чиста .NET сглобка.