如何在利用存储过程返回一批记录之前先返回其所有列名....
建的表
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go
--SQL SERVER 2000 动态SQL,指课程不止语文、数学、物理这三门课程。(以下同)
declare @sql varchar(8000)
declare @name varchar(20)
set @name='张三'
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' from tb where 姓名='''+@name+''' group by 姓名 '
exec(@sql)
以上如果建立存储过程返回的是张三的记录,如何在返回此批记录前
先返回列名 语文、数学、物理
------解决方案--------------------只要列名不要记录?
------解决方案--------------------你这是什么意思?
select distinct 课程 from tb
------解决方案--------------------declare @f varchar(8000)
set @f=''
select @f=@f+'、'+课程
from tb group by 课程
set @f=stuff(@f,1,1,'')
------解决方案--------------------declare @f varchar(8000)
set @f=''
select @f=@f+'、'+课程
from tb
where 姓名='张三'
group by 课程
set @f=stuff(@f,1,1,'')
------解决方案--------------------晕,楼上误会我的意思了呀,
我的意思是当我实施了下面的语句可以达到那种效果哦
------------------
达不到
没怀孕之前就知道是男是女了?