当前位置: 代码迷 >> Sql Server >> UNION 查询,该怎么处理
  详细解决方案

UNION 查询,该怎么处理

热度:558   发布时间:2016-04-24 10:21:10.0
UNION 查询
数据库有N个以某种格式开头的表(例如:LOG_INFO_XXX),表结构完全一样
现在我想查询出这些表中的2个字段的组合表
我的写法如下:(还有LOG_INFO_N003,LOG_INFO_N004.。。。等共10个表)

SELECT
ROW_NUMBER() OVER(ORDER BY GETDATE()) id,
[P001],
[S001]
FROM
(
SELECT
[P001],
[S001]
FROM 
[LOG_INFO_N001]
GROUP BY 
[P001],
[S001]

UNION ALL

SELECT
[P001],
[S001]
FROM 
[LOG_INFO_N002]
GROUP BY 
[P001],
[S001]
) t;

按照我这样来写的话,就必须用UNION一直往下接,想请问下:
1、这样写会不会查询速度很慢,有什么提高速度的办法
2、有没有简洁的写法,动态获取表名(有前缀规则可筛选表,前缀为:LOG_INFO)之类的。
万分感谢~~
------解决方案--------------------
select name from sys.tables where name like 'LOG_INFO%'
------解决方案--------------------
select name from sysobjects where name like '%LOG_INFO%'

------解决方案--------------------
我只能想出一个一个写。
1楼的混分呢?