根据以下描述,我必须在 SQL Server 中构建一个 CASE...END
语句,请帮助我构建一个复杂的 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'
提前致谢。
最佳答案
您可以将条件放在 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
....
当然,可以认为像这样的复杂规则属于您的业务逻辑层,而不是数据库中的存储过程......
关于sql-server - 在Sql Server中的单例语句中组合多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3043154/