在SSMS中加入许多具有相似名称的表的简单方法?

时间:2016-07-29 16:45:07

标签: sql sql-server join ssms ssms-2012

我有很多表都是相似的(例如" table1"" table2"" table3"等等)我需要在所有表中使用它们一个问题。它们都包含相同的两个变量(" ID"和" date"),它们被加入。

至少有25个此类表格,我对数据库具有只读权限,因此我无法将它们组合在一起,甚至可以创建一个可以执行此操作的视图。

我的问题是:是否有一个简单的快捷方式可用于加入所有这些表格?如果是SAS,我会创建一个宏,但我使用的是Microsoft SQL Server Management Studio 2012。

而不是必须这样做:

 select * 
 from table1 a
 join table2 b on a.id=b.id and a.date=b.date
 join table3 c on b.id=c.id and b.date=c.date
 join ....
 join ....
 join table25 y on x.id=y.id and x.date=y.date

我想做类似的事情:

 select *
 from merge(table1 - table25) using(id, date)

更换"合并"以上声明适用的任何内容。这样的事情有可能吗?

1 个答案:

答案 0 :(得分:-1)

正如评论中所指出的,您所寻找的简洁语法并不存在。

缩短SQL的唯一方法是利用加入列全部命名相同的事实,这将涉及使用using关键字:

select * 
 from table1 a
 join table2 b using (id, date)
 join table3 c using (id, date)
 join ....
 join ....
 join table25 y using (id, date)

但遗憾的是,即使这对您不利,因为SQL Server中无法识别using关键字。它确实可以在其他流行的数据库中使用。