在数据库中有一张学生表,其中有字段age,我现在想做的事情是:使用age分组,然后将分组后的每一个小组分别写入到不同的数据表中?并且数据表是以不同的age命名?这个用T-sql如何实现呢 ?
select age,count(*) as agecount from 表 group by age
再通过游标一行一行操作
对于大数据来说,游标是不是不太高效?
@mengfeig:
你这里有一个限定条件,T-SQL
如果你觉得游标效率不好,那你就通过程序代码,把相关SQL拼起来,再一次性执行
比如你在程序里用一个列表得到select age,count(*) as agecount from 表 group by age这样的数据,再循环操作,把相关的SQL拼起来,再一次性运行
@Rich.T: 哦。我有一个想法是:使用临时表存储分组后的数据,然后从临时表中取出每一组的数据使用存储过程写入到单独的数据表中。
@mengfeig:
有什么意义,你还不是得一行一行读取数据,如果你分多个临时表的话,效率会慢得一B,还不如用游标
@Rich.T: 好吧,我试验下。。
写个存储过程,传入参数,然后在这个存储过程中拼接sql,然后就行了啊
insert into 目标表
select 字段
from 源表
group by 源表字段
其中目标表和源表字段都可以是参数
能写下具体的代码吗?还是不太明白
用游标
用游标吧