合并两个DataSet的一种方法
2006-04-12 09:34
351 查看
需求描述:欲实现打印功能,一些记录项,即使内容项没有数据,也要保留其编号,并空出这一行;数据库在采集数据时,只采集了那些内容项不为空的数据,即只有一个包含<id><content>均不为空的表。
直观想法:设计一个和数据库中采集到的数据的那个表结构一样的表table2,只包含全部的〈id〉值,内容项由已有的Table1来填充。
解决方案:删除Table2中那些<id>包含在Table1中的行集,再和Table1合并。但是因为如果实际真的删除Table2中的记录,则会在下一次打印时丢失部分的<id>值,因为在一次打印后已经删除了一部分,故使用临时表。
实例:假设一个班级30个学生,打印学生成绩,有些学生成绩是空,但是仍要保留其姓名的位置;而数据库中已有的表Student行集中,只有那些已经有成绩的学生的记录。现在新建立一个与Student表结构完全相同的表Student2,Student2中包含所有的学生姓名即可。
SQL代码:
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE [name]= '##T') DROP TABLE ##T
select * into ##T from Student2
Delete from ##T where StudentID in
(
select StudentID from Student
)
select * from ##T
union
(
select * from Student
)
直观想法:设计一个和数据库中采集到的数据的那个表结构一样的表table2,只包含全部的〈id〉值,内容项由已有的Table1来填充。
解决方案:删除Table2中那些<id>包含在Table1中的行集,再和Table1合并。但是因为如果实际真的删除Table2中的记录,则会在下一次打印时丢失部分的<id>值,因为在一次打印后已经删除了一部分,故使用临时表。
实例:假设一个班级30个学生,打印学生成绩,有些学生成绩是空,但是仍要保留其姓名的位置;而数据库中已有的表Student行集中,只有那些已经有成绩的学生的记录。现在新建立一个与Student表结构完全相同的表Student2,Student2中包含所有的学生姓名即可。
SQL代码:
IF EXISTS (SELECT * FROM tempdb.dbo.sysobjects WHERE [name]= '##T') DROP TABLE ##T
select * into ##T from Student2
Delete from ##T where StudentID in
(
select StudentID from Student
)
select * from ##T
union
(
select * from Student
)
相关文章推荐
- 合并两个DataSet的数据内容的方法
- 合并两个DataSet的数据内容的方法
- DataSet——合二为一,合并两个数据集的数据内容
- java把两个有序的list合并的最快速的方法
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- php通过array_merge()函数合并两个数组的方法
- java向图片上写字,两个图片合并的方法
- python基础===两个list合并成一个dict的方法
- 两个自己写的合并GridView 行的方法
- 两个ISO合并为一个ISO的方法
- 一种合并链表方法实现 严蔚敏 数据结构
- 检查两个数据库里的表名、字段是否一致的一种方法
- iOS开发小技巧--UIButton的另一种布局方法(第一种在layoutSubViews方法中,这一种利用苹果提供的两个返回CGRect的方法)
- 如何合并两个DataSet数据集
- 用递归方法实现两个链表head1和head2各自有序,请把它们合并成一个链表仍然有序。(c/c++)
- concat() 方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
- Path.Combine (合并两个路径字符串)方法的一些使用细节
- js合并两个数组的方法
- 剑指offer——面试题17:合并两个排序的链表(非递归方法和递归方法)
- 探讨:将两个链表非降序合并为一个链表并依然有序的实现方法