如何在递归存储过程中使用数据透视
Posted
技术标签:
【中文标题】如何在递归存储过程中使用数据透视【英文标题】:How to use pivot in a recursive stored procedure 【发布时间】:2012-12-15 14:11:06 【问题描述】:我根据spaces
分隔varchar
(我知道空格数)
我正在使用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
我在
上执行下面的SPexec [dbo].[1234] 'a b c d e f g h',8
我的结果是
但我希望我的结果为
【问题讨论】:
等一下,我的房间里有一个旋转屏幕... @RoyiNamir:你很幸运。 :) 【参考方案1】: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 demo。
【讨论】:
哇,简单又巧妙!以上是关于如何在递归存储过程中使用数据透视的主要内容,如果未能解决你的问题,请参考以下文章