如何在递归存储过程中使用数据透视 [英] How to use pivot in a recursive stored procedure

查看:68
本文介绍了如何在递归存储过程中使用数据透视的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在根据spaces分隔varchar(我知道空格的数量)

I am separating a varchar according to spaces (I know the no. of 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

我在

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

我的结果是

但是我希望我的结果为

推荐答案

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

GO

[1234] 'A b c d e f'

这是一个 SQL Fiddle演示.

这篇关于如何在递归存储过程中使用数据透视的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆