问一个变量赋值的问题
本帖最后由 SilverNet 于 2014-01-04 11:47:59 编辑 问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
------------------------------
为什么使用
declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + 课程 from tb group by 课程
print(@sql)
语文],[数学],[物理
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)
drop table tb;
create table tb(姓名 nvarchar(10) , 课程 nvarchar(10) , 分数 int)
insert into tb values(N'张三' , N'语文' , 74)
insert into tb values(N'张三' , N'数学' , 83)
insert into tb values(N'张三' , N'物理' , 93)
insert into tb values(N'李四' , N'语文' , 74)
insert into tb values(N'李四' , N'数学' , 84)
insert into tb values(N'李四' , N'物理' , 94)
select * from tb;
declare @sql Nvarchar(4000)=N'';
select @sql = @sql + 课程 from tb group by 课程
print(@sql)