22,210
社区成员
发帖
与我相关
我的任务
分享
create table demo(类 varchar(20),[sh] [int] NULL)
insert into demo values('上衣',1)
insert into demo values('内衣',2)
insert into demo values('外套',3)
insert into demo values('西服',4)
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + 类 from +@C1+ group by 类 -- +' 附近有语法错误
exec ('select * from (select * from '+@C1+') a pivot (max(sh) for 类 in (' + @sql + ')) b')
end
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + '[类] from ' + @C1+' group by [类]' -- +' 附近有语法错误
exec ('select * from (select * from '+@C1+') a pivot (max(sh) for 类 in (' + @sql + ')) b')
end
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql varchar(8000)
set @sql = 'select isnull('+@sql+' + '','' , '') + 类 '
set @sql = @sql + ' from '+ @C1 +' group by 类 '
-- +' 附近有语法错误
exec ('select * from (select * from '+ @C1 +') a pivot (max(sh) for 类 in (' + @sql + ')) b')
end
--这样试试
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql varchar(8000)
select @sql = isnull(@sql + ',' , '') + '[类] from ' + @C1+' group by [类]' -- +' 附近有语法错误
exec ('select * from (select * from '+@C1+') a pivot (max(sh) for 类 in (' + @sql + ')) b')
end
create table demo(类 varchar(20),[sh] [int] NULL)
insert into demo values('上衣',1)
insert into demo values('内衣',2)
insert into demo values('外套',3)
insert into demo values('西服',4)
go
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql nvarchar(4000)
declare @str nvarchar(4000)
set @sql = N'select @str = isnull(@str + '','','''') + 类 from '+@C1+' group by 类' -- +' 附近有语法错误
exec sp_executesql @sql,N'@str nvarchar(4000) output',@str output
set @sql = 'select * from (select * from '+@C1+') a pivot (max(sh) for 类 in (' + @str + ')) b'
exec(@sql)
end
go
exec [pppppp] 'demo'
drop proc [pppppp]
drop table demo
/**************
内衣 上衣 外套 西服
----------- ----------- ----------- -----------
2 1 3 4
(1 行受影响)
create proc [dbo].[pppppp] @C1 varchar(1000)
as
begin
declare @sql nvarchar(4000)
declare @str nvarchar(4000)
set @sql = N'select @str = isnull(@str + '','','''') + 类 from '+@C1+' group by 类' -- +' 附近有语法错误
exec sp_executesql @sql,N'@str nvarchar(4000) output',@str output
set @sql = 'select * from (select * from '+@C1+') a pivot (max(sh) for 类 in (' + @str + ')) b'
exec(@sql)
end
go
--试试!
-- 你先将这个 @sql 变量的内容打印出来,看里面是什么内容,然后就容易排错了撒!
print ( @sql );