Please start any new threads on our new 
    site at https://forums.sqlteam.com.  We've got lots of great SQL Server
    experts to answer whatever question you can come up with. 
    
        
            
                
                    
                        
                            
                                | Author | 
                                
                                 Topic  | 
                             
                            
                                    | 
                                         GreenWizard 
                                        Starting Member 
                                         
                                        
                                        2 Posts  | 
                                        
                                        
                                            
                                            
                                             Posted - 2015-04-30 : 08:40:10
                                            
  | 
                                             
                                            
                                            | Requesting help with modifying a query.  I'm optimistic this has a quick fix (e.g. adding a 1 line syntax).Thanks so much!DESCRIPTION:We have a stored procedure that outputs BOM of a part number corresponding custom fields (see code below).?PROBLEM:?There is a need to modify the query so it outputs BOM of a part number WHERE no Field2 is null.  Meaning, if the part number doesn't have a Field2, then it doesn't show up in the query.*****************  SQL CODE  **********************SELECT	CAST(RTRIM(B1.PARENT) 			+ ' (' 			+ CASE WHEN SE.FIELD2 IS NOT NULL THEN SE.FIELD2 + ', ' ELSE '' END			+ CASE WHEN SE.FIELD3 IS NOT NULL THEN SE.FIELD3 + ', ' ELSE '' END			+ CASE WHEN SE.FIELD4 IS NOT NULL THEN SE.FIELD4 + ', ' ELSE '' END 			+ CASE WHEN SE.FIELD5 IS NOT NULL THEN SE.FIELD5 + ', ' ELSE '' END 			+ CASE WHEN SE.FIELD6 IS NOT NULL THEN SE.FIELD6 + ', ' ELSE '' END 			+ CASE WHEN SE.FIELD7 IS NOT NULL THEN SE.FIELD7 + ', ' ELSE '' END 			+ CASE WHEN SE.FIELD8 IS NOT NULL THEN SE.FIELD8 + ', ' ELSE '' END 			+ CASE WHEN SE.FIELD9 IS NOT NULL THEN SE.FIELD9 ELSE '' END 			+ ')' AS VARCHAR(255)) AS 'PARENT',		RTRIM(B1.PARTNUMBER) 			+ ' (' 			+ CASE WHEN B1.FIELD2 IS NOT NULL THEN B1.FIELD2 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD3 IS NOT NULL THEN B1.FIELD3 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD4 IS NOT NULL THEN B1.FIELD4 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD5 IS NOT NULL THEN B1.FIELD5 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD6 IS NOT NULL THEN B1.FIELD6 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD7 IS NOT NULL THEN B1.FIELD7 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD8 IS NOT NULL THEN B1.FIELD8 + ', ' ELSE '' END 			+ CASE WHEN B1.FIELD9 IS NOT NULL THEN B1.FIELD9 ELSE '' END 			+ ')' AS 'PARTNUMBER1',		RTRIM(B2.PARTNUMBER) 			+ ' (' 			+ CASE WHEN B2.FIELD2 IS NOT NULL THEN B2.FIELD2 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD3 IS NOT NULL THEN B2.FIELD3 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD4 IS NOT NULL THEN B2.FIELD4 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD5 IS NOT NULL THEN B2.FIELD5 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD6 IS NOT NULL THEN B2.FIELD6 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD7 IS NOT NULL THEN B2.FIELD7 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD8 IS NOT NULL THEN B2.FIELD8 + ', ' ELSE '' END 			+ CASE WHEN B2.FIELD9 IS NOT NULL THEN B2.FIELD9 ELSE '' END 			+ ')' AS 'PARTNUMBER2',		RTRIM(B3.PARTNUMBER) 			+ ' (' 			+ CASE WHEN B3.FIELD2 IS NOT NULL THEN B3.FIELD2 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD3 IS NOT NULL THEN B3.FIELD3 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD4 IS NOT NULL THEN B3.FIELD4 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD5 IS NOT NULL THEN B3.FIELD5 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD6 IS NOT NULL THEN B3.FIELD6 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD7 IS NOT NULL THEN B3.FIELD7 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD8 IS NOT NULL THEN B3.FIELD8 + ', ' ELSE '' END 			+ CASE WHEN B3.FIELD9 IS NOT NULL THEN B3.FIELD9 ELSE '' END 			+ ')' AS 'PARTNUMBER3',FROM	TEST.dbo.BOM_TREE B1		INNER JOIN TEST2.dbo.STOCKEXT SE ON B1.PARENT = SE.PARTNUMBER		LEFT JOIN TEST.dbo.BOM_TREE B2 ON B1.PARTNUMBER = B2.PARENT		LEFT JOIN TEST.dbo.BOM_TREE B3 ON B2.PARTNUMBER = B3.PARENTWHERE	B1.PARENT = @PARTNUMBERORDER BY B1.PARENT, B1.PARTNUMBER, B2.PARTNUMBER, B3.PARTNUMBER | 
                                             
                                         
                                     | 
                             
       
                            
                       
                          
                            
                                    | 
                                     gbritton 
                                    Master Smack Fu Yak Hacker 
                                     
                                    
                                    2780 Posts  | 
                                    
                                      
                                     | 
                                   
                            
                       
                          
                            
                                    | 
                                     Kristen 
                                    Test 
                                     
                                    
                                    22859 Posts  | 
                                    
                                      
                                        
                                          
                                           
                                            Posted - 2015-04-30 : 10:39:46
                                          
  | 
                                         
                                        
                                          Can't help with the question without some more information, as gbritton has asked, but I find:SELECT	CAST(RTRIM(B1.PARENT) + ' (' + CASE WHEN SE.FIELD2 IS NOT NULL THEN SE.FIELD2 + ', ' ELSE '' END+ CASE WHEN SE.FIELD3 IS NOT NULL THEN SE.FIELD3 + ', ' ELSE '' END+ CASE WHEN SE.FIELD4 IS NOT NULL THEN SE.FIELD4 + ', ' ELSE '' END + CASE WHEN SE.FIELD5 IS NOT NULL THEN SE.FIELD5 + ', ' ELSE '' END + CASE WHEN SE.FIELD6 IS NOT NULL THEN SE.FIELD6 + ', ' ELSE '' END + CASE WHEN SE.FIELD7 IS NOT NULL THEN SE.FIELD7 + ', ' ELSE '' END + CASE WHEN SE.FIELD8 IS NOT NULL THEN SE.FIELD8 + ', ' ELSE '' END + CASE WHEN SE.FIELD9 IS NOT NULL THEN SE.FIELD9 ELSE '' END + ')' AS VARCHAR(255)) AS 'PARENT',both hard to read and looks, to me, that it may be very inefficient.  Personally I would recode that as:SELECT	CAST(RTRIM(B1.PARENT) + ' (' + COALESCE(SE.FIELD2 + ', ', '')+ COALESCE(SE.FIELD3 + ', ', '')+ COALESCE(SE.FIELD4 + ', ', '')+ COALESCE(SE.FIELD5 + ', ', '')+ COALESCE(SE.FIELD6 + ', ', '')+ COALESCE(SE.FIELD7 + ', ', '')+ COALESCE(SE.FIELD8 + ', ', '')+ COALESCE(SE.FIELD9, '')+ ')' AS VARCHAR(255)) AS 'PARENT',and it looks to me as though it will always leave a trailing "," (unless FIELD9 has a value) so perhaps this might look more attractive (assuming that lower numbered fields are always present)SELECT	CAST(RTRIM(B1.PARENT) + ' (' + COALESCE(SE.FIELD2, '')+ COALESCE(', ' + SE.FIELD3, '')+ COALESCE(', ' + SE.FIELD4, '')+ COALESCE(', ' + SE.FIELD5, '')+ COALESCE(', ' + SE.FIELD6, '')+ COALESCE(', ' + SE.FIELD7, '')+ COALESCE(', ' + SE.FIELD8, '')+ COALESCE(', ' + SE.FIELD9, '')+ ')' AS VARCHAR(255)) AS 'PARENT',  | 
                                         
                                        
                                            | 
                                         
                                       
                                     | 
                                   
                            
                            
                                | 
                                    
                                      
                                     
                                    
                                 | 
                             
                         
                     | 
                 
             
         |   
     
     
            
              
	     |  
		
			
     
          
		 |