| 
                
                    | 
                            
                                | Author | Topic |  
                                    | karunaAged Yak Warrior
 
 
                                        582 Posts | 
                                            
                                            |  Posted - 2005-11-11 : 11:24:05 
 |  
                                            | I have a table which stores value delimited using "," I need to split the delimited column value to 8 columns.Whats the best way? I was thinking about UDF any other solutions?SampleColABC,XYZ,DEF,123,678,ZXY,,ExpectedResultcol1   col2   col3  col4  col5 col6  col7  col8ABC    XYZ    DEF   123   678  ZXY             ThanksKarunakaran |  |  
                                    | jsmith8858Dr. Cross Join
 
 
                                    7423 Posts | 
                                        
                                          |  Posted - 2005-11-11 : 11:39:29 
 |  
                                          | Is it "0th normal form" day today?  Is this a table that you have control over?  Have you consider properly storing the data as rows in a related table? |  
                                          |  |  |  
                                    | KristenTest
 
 
                                    22859 Posts | 
                                        
                                          |  Posted - 2005-11-11 : 12:19:17 
 |  
                                          | [code]DECLARE	@SampleCol	varchar(100),	@I1 int,	@I2 int,	@I3 int,	@I4 int,	@I5 int,	@I6 int,	@I7 int,	@I8 int,	@COLUMN_1 varchar(10),	@COLUMN_2 varchar(10),	@COLUMN_3 varchar(10),	@COLUMN_4 varchar(10),	@COLUMN_5 varchar(10),	@COLUMN_6 varchar(10),	@COLUMN_7 varchar(10),	@COLUMN_8 varchar(10)SET	@SampleCol = 'ABC,XYZ,DEF,123,678,ZXY,,'SELECT	  @I1 = CHARINDEX(',', @SampleCol + ',')	, @COLUMN_1 = SUBSTRING(@SampleCol + ',', 1, @I1-1)	, @I2 = CASE WHEN COALESCE(@I1, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I1+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_2 = CASE WHEN @I2 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I1+1, @I2-@I1-1) END	, @I3 = CASE WHEN COALESCE(@I2, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I2+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_3 = CASE WHEN @I3 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I2+1, @I3-@I2-1) END	, @I4 = CASE WHEN COALESCE(@I3, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I3+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_4 = CASE WHEN @I4 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I3+1, @I4-@I3-1) END	, @I5 = CASE WHEN COALESCE(@I4, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I4+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_5 = CASE WHEN @I5 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I4+1, @I5-@I4-1) END	, @I6 = CASE WHEN COALESCE(@I5, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I5+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_6 = CASE WHEN @I6 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I5+1, @I6-@I5-1) END	, @I7 = CASE WHEN COALESCE(@I6, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I6+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_7 = CASE WHEN @I7 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I6+1, @I7-@I6-1) END	, @I8 = CASE WHEN COALESCE(@I7, 0) = 0 THEN 0 ELSE COALESCE(CHARINDEX(',', @SampleCol + ',', @I7+1), DATALENGTH(@SampleCol + ',')) END	, @COLUMN_8 = CASE WHEN @I8 = 0 THEN NULL ELSE SUBSTRING(@SampleCol + ',', @I7+1, @I8-@I7-1) ENDSELECT	@COLUMN_1, @COLUMN_2, @COLUMN_3, @COLUMN_4, @COLUMN_5, @COLUMN_6, @COLUMN_7, @COLUMN_8[/code]Kristen |  
                                          |  |  |  
                                    | karunaAged Yak Warrior
 
 
                                    582 Posts | 
                                        
                                          |  Posted - 2005-11-11 : 12:41:03 
 |  
                                          | quote:No, I dont have any control over that table on how the data is stored, because thats how the client is storing data. All I have is the permission to use that dataOriginally posted by jsmith8858Is this a table that you have control over?  Have you consider properly storing the data as rows in a related table?
 
  . I have to split this column to write to a text file along with other columns.Thanks for the solution Kristen. I'll work it out and post the outcome.ThanksKarunakaran |  
                                          |  |  |  
                                |  |  |  |