SQL Server 中多次查询结果合并互补?

环境:假设有表A、B,每张表有15个字段,字段名称、类型、顺序均相同.
问题:分两次查询,每次查询一张表,表A查询1、3、5、7、9列数据,表B查询2、4、 6、8、10列数据,同时两张表均查询处11-15列的数据,两张表均查询出第一行数据,那么两条命令同时执行会查询出两个结果,现在需要将表B中的2、4、6、8、10行数据填充进表A空的2、4、6、8、10中,而11-15列因表A已查询出,所以不再填充,将两条命令产生的结果合并为一条结果,如何操作?图片说明

7个回答

select top 1 (case when isnull(C1,'')='' then (select top 1 c1 from [表2]) else C1 end) as C1
,(case when isnull(C2,'')='' then (select top 1 C2 from [表2]) else C2 end) as C2
from [表A]

qq_36459129
稍稍有些冷 我觉得这个方法可行,因为那几列是固定的!谢谢
2 年多之前 回复

这两张表不能做关联查询? 为何要分两次查询?

qq_36459129
稍稍有些冷 这里只是做一个示例来问,其实这两个查询结果都是由3-4张表联合查询得到,一共涉及的表过多联合查询太复杂
2 年多之前 回复

你的问题很好,但是我并不能答出来!

你的问题很好,但是我并不能答出来!

创建一个临时表 查询A表和B表 都往临时表里保存 在临时表中 的 就是一个 完整的数据 (比如A表 插入临时表1、3....,B表处理临时表时 用更新 只更新 2、4...)

qq_36459129
稍稍有些冷 这也是一种实现的方法,谢谢
2 年多之前 回复

用unio把两个sql的查询结果关联起来,一条sql就可以了

是想要把两条数据合到一块,那应该有个主键什么的保证这两条数据一样的主键,那这样不就方便多了么,其实就是个组合查询

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问