Question : MS SQL 2005 case problem

I have a procedure that has Combine all reason fields into one comma delimited column.The problem is that the I see the results using a lot of commas for example:
,,,,,6,7,8,,
I'm trying to combine 10 different fields into one and I want to display comma if the value is not null.

see the code below

thank you

Here is a example that works:
ISNULL(
      ((isnull(MHDBipolar,''))

       +(case when MHDBipolar is not null then(isnull(+','+MHDDepression,''))else
        (isnull(MHDDepression,''))end)

       + (case when MHDDepression is not null or MHDBipolar is not null then(isnull(+','+MHDSchizophrenia,''))else
        (isnull(MHDSchizophrenia,''))end)

      + (case when MHDDepression is not null or MHDSchizophrenia is not null or MHDBipolar is not null then(isnull(+','+MHDOther,''))else
        (isnull(MHDOther,''))end)
Code Snippet:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
/*  Combine all reason fields into one comma delimited column  IT IS showing all the commas*/
  select 
	ISNULL(
	((isnull(r.ReasonsForReferralAbscesses,''))
	
	+(case when r.ReasonsForReferralAbscesses is not null then(isnull(+','+r.ReasonsForReferralCellulitis,''))else
	  	(isnull(r.ReasonsForReferralCellulitis,''))end)

	+ (case when r.ReasonsForReferralAbscesses is not null or r.ReasonsForReferralCellulitis is not null 
		then(isnull(+','+r.ReasonsForReferralDiabetes,''))
		else(isnull(r.ReasonsForReferralDiabetes,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null 
		then(isnull(+','+r.ReasonsForReferralFractures,''))
		else(isnull(r.ReasonsForReferralFractures,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		then(isnull(+','+r.ReasonsForReferralMusculoskeletal,''))
		else(isnull(r.ReasonsForReferralMusculoskeletal,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		or r.ReasonsForReferralMusculoskeletal is not null
		then(isnull(+','+r.ReasonsForReferralPneumonia,''))
		else(isnull(r.ReasonsForReferralPneumonia,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		or r.ReasonsForReferralMusculoskeletal is not null
		or r.ReasonsForReferralPneumonia is not null
		then(isnull(+','+r.ReasonsForReferralPostSugical,''))
		else(isnull(r.ReasonsForReferralPostSugical,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		or r.ReasonsForReferralMusculoskeletal is not null
		or r.ReasonsForReferralPneumonia is not null
		or r.ReasonsForReferralPostSugical is not null
		then(isnull(+','+r.ReasonsForReferralSkinUlcer,''))
		else(isnull(r.ReasonsForReferralSkinUlcer,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		or r.ReasonsForReferralMusculoskeletal is not null
		or r.ReasonsForReferralPneumonia is not null
		or r.ReasonsForReferralPostSugical is not null
		or r.ReasonsForReferralSkinUlcer is not null
		then(isnull(+','+r.ReasonsForReferralViralSyndrome,''))
		else(isnull(r.ReasonsForReferralViralSyndrome,''))end)
	+ (case when r.ReasonsForReferralAbscesses is not null 
		or r.ReasonsForReferralCellulitis is not null 
		or r.ReasonsForReferralDiabetes is not null
		or r.ReasonsForReferralFractures is not null
		or r.ReasonsForReferralMusculoskeletal is not null
		or r.ReasonsForReferralPneumonia is not null
		or r.ReasonsForReferralPostSugical is not null
		or r.ReasonsForReferralSkinUlcer is not null
		or r.ReasonsForReferralViralSyndrome is not null
		then(isnull(+','+r.ReasonsForReferralOther,''))
		else(isnull(r.ReasonsForReferralOther,''))end)
	),''
	) as MedicalCondition,

INTO #TempTable

from tbl_Reason r

Answer : MS SQL 2005 case problem


  select
     CASE WHEN LEFT ( isnull(r.ReasonsForReferralAbscesses,'')+ isnull(','+r.ReasonsForReferralCellulitis,'')+isnull(','+r.ReasonsForReferralDiabetes,'')
      +isnull(','+r.ReasonsForReferralFractures,'')+isnull(','+r.ReasonsForReferralMusculoskeletal,'')+isnull(','+r.ReasonsForReferralPneumonia,'')
      +isnull(','+r.ReasonsForReferralPostSugical,'') +isnull(','+r.ReasonsForReferralSkinUlcer,'') +isnull(','+r.ReasonsForReferralViralSyndrome,'')
      +isnull(','+r.ReasonsForReferralOther,''),1) = ','  
      THEN  SUBSTRING( isnull(r.ReasonsForReferralAbscesses,'')+ isnull(','+r.ReasonsForReferralCellulitis,'')+isnull(','+r.ReasonsForReferralDiabetes,'')
      +isnull(','+r.ReasonsForReferralFractures,'')+isnull(','+r.ReasonsForReferralMusculoskeletal,'')+isnull(','+r.ReasonsForReferralPneumonia,'')
      +isnull(','+r.ReasonsForReferralPostSugical,'') +isnull(','+r.ReasonsForReferralSkinUlcer,'') +isnull(','+r.ReasonsForReferralViralSyndrome,'')
      +isnull(','+r.ReasonsForReferralOther,'') , 2, 8000)
      ELSE
      isnull(r.ReasonsForReferralAbscesses,'')+ isnull(','+r.ReasonsForReferralCellulitis,'')+isnull(','+r.ReasonsForReferralDiabetes,'')
      +isnull(','+r.ReasonsForReferralFractures,'')+isnull(','+r.ReasonsForReferralMusculoskeletal,'')+isnull(','+r.ReasonsForReferralPneumonia,'')
      +isnull(','+r.ReasonsForReferralPostSugical,'') +isnull(','+r.ReasonsForReferralSkinUlcer,'') +isnull(','+r.ReasonsForReferralViralSyndrome,'')
      +isnull(','+r.ReasonsForReferralOther,'')
      END
     
INTO #TempTable
from tbl_Reason r

Random Solutions  
  •  offline synchronized file Gone how to restore them?
  •  Do you know how I can prevent the Run time error '3010'  table 'FA_ledger_report' already exists ? Actually the 'FA_ledger_report' is a Union query.
  •  How to Take ownership of folder and all subdirectories and files?
  •  How to prevent the auto update within an Acces 2007 template
  •  Using Server.Mappath to get a file from a virtual directory
  •  What is the MS Access 2007 version of this code?
  •  How to clear @@error or general error flag in T-SQL
  •  Windows 2008: When they say "CPUs supported", are they talking CPU sockets or CPU cores?
  •  The transaction log for database 'mydatabase' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
  •  Error "windows cannot access the specified device path, or file. you may not have the appropriate permissions to access them"
  •  
    programming4us programming4us