Объединение нескольких обусловливает в единственном операторе выбора в SQL-сервере

Согласно следующему описанию я должен структурировать a CASE...END оператор в SQL-сервере, помогите мне структурировать комплекс CASE...END оператор для выполнения следующего условия.

if PAT_ENT.SCR_DT is not null and PAT_ENTRY.ELIGIBILITY is null then display display 'Favor'
if PAT_ENT.SCR_DT is not null and PAT_ENTRY.EL is equal to No, display 'Error'
if PAT_ENTRY.EL is Yes and DS.DES is equal to null or OFF, display 'Active'
if DS.DES is equal to N, display 'Early Term'
if DS.DES is equal to Y, display 'Complete'

Заранее спасибо.

11
задан Dan 3 October 2013 в 16:35
поделиться

1 ответ

Вы можете поместить условие после предложения 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
  ....

Конечно, можно привести аргумент, что такие сложные правила, как это, принадлежат вашему уровню бизнес-логики, а не хранимой процедуре в базе ...

35
ответ дан 3 December 2019 в 02:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: