.学生表 如下:
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息
答案 :delete tablename where 自动编号 not in(select min(自动编号) from tablename
group by 学号,姓名,课程编号,课程名称,分数)
语句中!!!
select min(自动编号) from tablename
group by 学号,姓名,课程编号,课程名称,分数 什么意思...!!解释下!!
第一个问题的意思是把取(学号,姓名,课程编号,课程名称,分数)相同的的一组里的(自动编号)比较小的.
group by 学号,姓名,课程编号,课程名称,分数 ------ 把(学号,姓名,课程编号,课程名称,分数)相同分成一组
select min(自动编号) -------- 取在里数据集(也就是上面group by的结果)里自动编号比较下的.
第二题.在SQL里不知怎么做.在C#里倒是可以很容易的做的.
http://www.cnblogs.com/zhouxin/archive/2009/09/25/1573344.html里的类GroupExecl可以很容易实现你要的数据.
第二题:
2K的是CASE WHEN咯
2K5+的是PIVOT。
反正就是个行列转的问题
行列转换问题,自己去百度下吧,很多关于这个的。