0

私は(スペースの数を知っています)varcharに従って分離していますspaces

私はそうするためにを使用しstored procedure (Recursive)ています

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

次のSPを実行します

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

そして私の結果は ここに画像の説明を入力してください

しかし、私は私の結果が欲しい

画像

4

1 に答える 1

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

GO

[1234] 'A b c d e f'

これがSQLFiddleのデモです。

于 2012-12-31T12:46:11.860 に答える