现在有两个SQL语句,并且两个语句查询的结果列数不同,现在要将两个结果合并为一个,如何实现?比如 表A,里面的字段有a1,a2,a3,表B里的字段有b1,b2,现在想得到的结果是a1,a2,a3,b1,b2,这个SQL如何实现??
使用cross join
declare @p table(a1 int,a2 int) declare @t table(c1 char(1),c2 char(1),c3 char(3)) insert into @p values(1,2),(2,3) insert into @t values('a','b','c') select * from @p cross join @t
cross 这是个什么东东??
@gyangjing: 交叉连接,用于计算两个结果集的笛卡尔乘积
使用join呗
select * from A union select * from B,但 union 會要求兩個表的欄位數量要相同,所以缺的要用 NULL 來填。
wm_concat、多行变列问题
用union可以,注意用union的时候要保证字段的个数都要相同,像你说的这个,最简单的,只需要用null或者
引号 代替即可。select a1,a2,a3 from A union select b1,b2, ' ' from B