views:

52

answers:

1

According to the following description i have to frame a case ...End statement in Sql server ,help me to frame a complex case..End statement to fulfil the following condition.

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'

Thanks in advance.

+1  A: 

You can put the condition after the WHEN clause, like so:

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

Of course, the argument could be made that complex rules like this belong in your business logic layer, not in a stored procedure in the database...

Dean Harding
Tons of thanks :) Have a nice day
swetha