求多个表的列差异

Weaseatiti 2018-06-06 08:44:07
prodtype_1
列:
ID name1 name2 name3

prodtype_2
列:
ID name1 name2


prodtype_3
列:
ID name4

prodtype4
ID name1 name2 name3 name4
-------------------------------------------------------
求得
prodtype_1
name4

prodtype_2
name3 name4

prodtype_3
name1 name2 name3

prodtype4


谢谢
...全文
139 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Weaseatiti 2018-06-06
  • 打赏
  • 举报
回复
引用 1 楼 zjcxc 的回复:
with a as(
select distinct name from sys.columns
where object_name(object_id) in ('prodtype_1', 'prodtype_2', 'prodtype_3', 'prodtype_4')
)
select 'prodtype_1', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_1'
)
union all
select 'prodtype_2', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_2'
)
union all
select 'prodtype_3', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_3'
)
union all
select 'prodtype_4', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_4'
)
大神。。这个表是动态的怎么做? 比如说 表名不定是4,可能是5 但是命名规则差不多
zjcxc 2018-06-06
  • 打赏
  • 举报
回复
with a as(
select distinct name from sys.columns
where object_name(object_id) in ('prodtype_1', 'prodtype_2', 'prodtype_3', 'prodtype_4')
)
select 'prodtype_1', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_1'
)
union all
select 'prodtype_2', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_2'
)
union all
select 'prodtype_3', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_3'
)
union all
select 'prodtype_4', name from a
where name not in(
	select name from sys.columns
	where object_name(object_id) = 'prodtype_4'
)

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧