SQL如何将两个列数不一样的表的内容纵向拼接在一起
答案:5 悬赏:0 手机版
解决时间 2021-04-05 19:12
- 提问者网友:情歌越听越心酸
- 2021-04-05 03:46
SQL如何将两个列数不一样的表的内容纵向拼接在一起
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-04-05 04:45
一句sql还是比较难办到的。可以用存储过程,先新建一张有九列新表,把表A中数据select出来插入新表中,再把表B中数据查询出来并补上三个空字段后插入新表。这样新表就有表A+表B纵向拼接的效果了。
全部回答
- 1楼网友:末日狂欢
- 2021-04-05 08:04
if object_id('tempdb..#a') is not null drop table #a
if object_id('tempdb..#b') is not null drop table #b
if object_id('tempdb..#c') is not null drop table #c
GO
CREATE TABLE #a(id INT ,a VARCHAr(10),rowid INT IDENTITY(1,1))
CREATE TABLE #b(id INT ,b VARCHAr(10),rowid INT IDENTITY(1,1))
CREATE TABLE #c(id INT ,c VARCHAr(10),rowid INT IDENTITY(1,1))
go
INSERT INTO #a VALUES(1,'a1')
INSERT INTO #b VALUES(1,'b1')
INSERT INTO #b VALUES(1,'b2')
INSERT INTO #c(id,c) VALUES(1,'c1')
INSERT INTO #c(id,c) VALUES(1,'c2')
INSERT INTO #c(id,c) VALUES(1,'c3')
go
SELECT a.a,b.b,c.c
FROM #c c LEFT JOIN #b b ON c.rowid=b.rowid
LEFT JOIN #a a ON c.rowid=a.rowid
if object_id('tempdb..#b') is not null drop table #b
if object_id('tempdb..#c') is not null drop table #c
GO
CREATE TABLE #a(id INT ,a VARCHAr(10),rowid INT IDENTITY(1,1))
CREATE TABLE #b(id INT ,b VARCHAr(10),rowid INT IDENTITY(1,1))
CREATE TABLE #c(id INT ,c VARCHAr(10),rowid INT IDENTITY(1,1))
go
INSERT INTO #a VALUES(1,'a1')
INSERT INTO #b VALUES(1,'b1')
INSERT INTO #b VALUES(1,'b2')
INSERT INTO #c(id,c) VALUES(1,'c1')
INSERT INTO #c(id,c) VALUES(1,'c2')
INSERT INTO #c(id,c) VALUES(1,'c3')
go
SELECT a.a,b.b,c.c
FROM #c c LEFT JOIN #b b ON c.rowid=b.rowid
LEFT JOIN #a a ON c.rowid=a.rowid
- 2楼网友:十鸦
- 2021-04-05 07:14
连接,加上条件就可以了
- 3楼网友:神也偏爱
- 2021-04-05 06:04
select * from 表A
union
select *,null,null,null from 表B
这么写有个大前提,前6列字段名称需要相同,然后
看看差几列就放几个null。试试,应该可以用。追问我尝试了,但是没有成功,但是还是谢谢你的回答。
union
select *,null,null,null from 表B
这么写有个大前提,前6列字段名称需要相同,然后
看看差几列就放几个null。试试,应该可以用。追问我尝试了,但是没有成功,但是还是谢谢你的回答。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯