One way is to use a table with integers (like master..spt_values) or a numbers function:;with TableA (ID, JunkData) as( select 1, '1234jdueakj34jfjj4' union all select 2, '345j5uttuvj5575jkf' union all select 3, 'sjhsdfk283ncfkjsf9')select a.ID ,substring(a.junkData, n.number+1, 5) [SplitData5]from TableA ajoin master..spt_values n on n.type = 'P' and n.number % 5 = 0where n.number < len(a.junkData)OUTPUT:ID SplitData5----------- ----------1 1234j1 dueak1 j34jf1 jj42 345j52 uttuv2 j55752 jkf3 sjhsd3 fk2833 ncfkj3 sf9
Be One with the OptimizerTG