请教一下将存储的东西写为函数

freescy2002 2010-07-27 09:03:38
以下开始--
declare @sql varchar(8000)
select
@sql=isnull(@sql+',','')
+'sum(case when b='+ltrim(b)+' then c else 0 end) as ['+ltrim(b)+']'
from
(select distinct b from tb) t
这里结果--

exec('select a,'+@sql+' from tb group by a')

能否将最上面的部分写一个函数,将 '+@sql+' 以函数的方式来实现,谢谢 如

select a,dbo.abc() from tb group by a
...全文
40 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
黄_瓜 2010-07-27
  • 打赏
  • 举报
回复
create proc pp 
as
begin
declare @sql varchar(8000)
select
@sql=isnull(@sql+',','')
+'sum(case when b='+ltrim(b)+' then c else 0 end) as ['+ltrim(b)+']'
from
(select distinct b from tb) t
exec('select a,'+@sql+' from tb group by a')
end
go

exec pp
黄_瓜 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 josy 的回复:]
函数不支持动态SQL,建议用存储过程来做
[/Quote]
up
百年树人 2010-07-27
  • 打赏
  • 举报
回复
函数不支持动态SQL,建议用存储过程来做

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧