我们需要做的是分别从两个表中读取数据,读取的字段不一样,但最后呈现的列都是一样的。能否有办法一次合并这两个表中的数据到前台进行输出呢?因为在Silverlight进行开发时,读取数据的操作都是异步操作,如果对于此过程,使用两次查询完成两个表数据的读取,除了浪费性能,在代码的同步性上也有所下降,此问题的出现,我觉得SQL肯定是可以的,现分享给大家。 先说一下涉及到的两个表: 考试表:ExamTB 涉及字段:EId int,EName varchar(50),SubjectId int,EStartTime datetime 任务表:TaskTB 涉及字段:TId int,TName varchar(50),SubjectId int,TStartTime datetime 当然这两个表还有其他一些不一样的字段,此处忽略,但查询出来的就是如上字段,两个表查询出相同的东西,现在就是要把两个查询的结果合并到一个表中输出出来,当然额外加一个字段Type标识是考试表,还是任务表中的数据,原始的想法: select EId,EName ,SubjectId ,EStartTime ,1 as type from ExamTBselect TId ,TName ,SubjectId ,TStartTime ,2 as type from TaskTB 没有相互关联的字段。此时想到的临时表,对使用临时表把记录都存在一块不就可以了。 怎么存储呢,不会用游标逐一循环表,实现插入吧,那也太折腾了,经分析不用使用此功能即可实现相应的功能。 具体代码如下: --创建用于存储相同数据的临时表CREATE TABLE #TempTB (TId int,TName varchar(50),SubjectId int,TType int)--插入考试表数据,1表示是考试insert into #TempTB(TId,TName,SubjectId,TType)select EId,EName,SubjectId,EStartTime ,1from ExamTB--插入任务表数据,2表示此数据是来自任务表insert into #TempTB(TId,TName,SubjectId,TType)select TId,TName,SubjectId,TStartTime,2from TaskTB--输出数据select * from #TempTB--删除临时表drop table #TempTB (责任编辑:admin) |