2 qq 36459129 qq_36459129 于 2017.09.13 13:02 提问

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个回答

kfrhappy
kfrhappy   2017.09.13 15:04
已采纳

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
qq_36459129 我觉得这个方法可行,因为那几列是固定的!谢谢
2 个月之前 回复
qq_33727653
qq_33727653   2017.09.13 13:14

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

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

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

li1300881350
li1300881350   2017.09.13 13:49

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

xinyuan178
xinyuan178   2017.09.13 14:09

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

qq_36459129
qq_36459129 这也是一种实现的方法,谢谢
2 个月之前 回复
loowooowool
loowooowool   2017.09.13 15:55

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

huang931027
huang931027   2017.09.13 17:36

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

Csdn user default icon
上传中...
上传图片
插入图片