0

I am separating a varchar according to spaces (I know the no. of spaces)

I am using a stored procedure (Recursive) to do so

Alter procedure [dbo].[1234]
   @name varchar(100),
   @count int 
AS 
BEGIN 

    if @count=1
    begin
        set @name=SUBSTRING(@name,CHARINDEX(' ',@name,1)+1,LEN(@name))
        select @name
    end
    if @count>1
    begin
        select SUBSTRING(@name,1,CHARINDEX(' ',@name,1)-1)
        set @count=@count-1
        set @name=SUBSTRING(@name,CHARINDEX(' ',@name,1)+1,LEN(@name))
        exec [dbo].[1234] @name,@count
    end
END

I execute the following SP on

exec [dbo].[1234] 'a b c d e f g h',8

And my result is enter image description here

but i want my result as

Image

Glorfindel
  • 21,988
  • 13
  • 81
  • 109
Prahalad Gaggar
  • 11,389
  • 16
  • 53
  • 71

1 Answers1

4
Alter procedure [dbo].[1234]
   @name varchar(100)
as   
Select @name='Select' + ''''+Replace(@name,' ',''',''')+''''
EXEC( @name)

GO

[1234] 'A b c d e f'

Here's a SQL Fiddle demo.

Andriy M
  • 76,112
  • 17
  • 94
  • 154
bummi
  • 27,123
  • 14
  • 62
  • 101