当前位置: 首页 > news >正文

合并两个DataSet的一种方法

需求描述:欲实现打印功能,一些记录项,即使内容项没有数据,也要保留其编号,并空出这一行;数据库在采集数据时,只采集了那些内容项不为空的数据,即只有一个包含<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
)


本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/6974,如需转载请自行联系原作者

相关文章:

  • springboot集成swagger
  • kentico中的page template的使用
  • 解决奇葩的win7文件不能拖动问题
  • layer
  • RSA加密算法的简单案例
  • 第二次作业
  • Oracle数据库入门——初级系列教程
  • CentOS 网络基础:(4)设置单网卡多IP
  • PostgreSQL 9.6 for Centos7.4 最佳实践安装
  • charles抓包工具
  • OpenSL ES
  • C#.NET 剪切板复制粘贴泛型的例子代码参考 Clipboard Copy Paste List
  • 关于《停止学习框架》 - 讨论
  • Educational Codeforces Round 33 (Rated for Div. 2) E. Counting Arrays [数论II][组合数学]
  • [学习笔记]拉格朗日插值
  • 网络传输文件的问题
  • 自己简单写的 事件订阅机制
  • 【node学习】协程
  • 4个实用的微服务测试策略
  • Asm.js的简单介绍
  • oschina
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Sass 快速入门教程
  • SpringBoot几种定时任务的实现方式
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 驱动程序原理
  • 软件开发学习的5大技巧,你知道吗?
  • 使用 @font-face
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 推荐一个React的管理后台框架
  • 网页视频流m3u8/ts视频下载
  • 移动端解决方案学习记录
  • 译自由幺半群
  • 怎么将电脑中的声音录制成WAV格式
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #1015 : KMP算法
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (附源码)springboot码头作业管理系统 毕业设计 341654
  • (论文阅读30/100)Convolutional Pose Machines
  • (四)JPA - JQPL 实现增删改查
  • (转)视频码率,帧率和分辨率的联系与区别
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .net程序集学习心得
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .Net下的签名与混淆
  • .NET正则基础之——正则委托
  • /bin/rm: 参数列表过长"的解决办法
  • @Transactional类内部访问失效原因详解