[英]How to select the same column from multiple table with almost same name in SQL?
我想从很多表格中选择2列。
为例
Table_2017-01
id name value
Table_2017-02
id name value
Table_2017-03
id name value
等等...
我的查询是
SELECT name, value
FROM Table_2017-01, Table_2017-02, Table_2017-03
但我想知道是否有可能
SELECT name, value FROM LIKE Table_%
我知道这最后一个查询是不可能的,如果存在针对此问题的查询,对我来说可能会更容易,因为我可以拥有很多表,而其中一部分名称不同。
要选择多个具有相同名称的列,您必须在表中将其作为前缀,例如:
SELECT `Table_2017-01.name`, `Table_2017-02.name`, `Table_2017-03.name` FROM Table_2017-01,`Table_2017-02, Table_2017-03
如果要在一列中使用它们,请使用Union
。
(SELECT `Table_2017-01.name` from Table_2017-01)
Union
(SELECT `Table_2017-02.name` from Table_2017-02)
这取决于您的数据库。 Oracle fe具有一个包含所有表的数据字典。 因为我比其他人更了解oracle,所以我将其用作示例:
SELECT TABLE_NAME FROM ALL_TABLES WHERE TABLE_NAME LIKE 'Table_2017-%';
现在,我有时使用以下几种方式:
我建立一个选择列表,并将它们发射到数据库中:
通过SQL
SELECT'SELECT'''|| TABLE_NAME ||'''TABLE_NAME,NAME,VALUE FROM'|| TABLE_NAME ||' UNION'FROM ALL_TABLES WHERE TABLE_NAME像'Table_2017-%';
现在您可以将结果复制到数据库中(不要忘记删除最后一个“ UNION”)
但是请注意:它又快又脏,列名和类型必须匹配。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.