如何从 SQL Server 2008 R2 架构中的一组表中进行 SELECT 和 UNION

Ama*_*ndo 1 t-sql sql-server-2008-r2

我的 SQL Server 2008 R2 数据库中有一组表,所有表都具有相同的列。

我需要SELECTUNION这些桌子。我可以SELECT这样设置我想要的表:

SELECT TABLE_NAME FROM information_schema.tables
where (TABLE_NAME like '%_CH1' or TABLE_NAME like '%_CH0')
and TABLE_NAME not like '%test%'
Run Code Online (Sandbox Code Playgroud)

我现在需要的是SELECT Column1, Column2, Column3从该列表中的第一个人开始,UNION SELECT Column1, Column2, Column3从该列表中的下一个人开始,依此类推。

我怎么做?

Mar*_*rkD 5

动态查询示例;

--CREATE TABLE Utable1 (Col1 INT, Col2 INT, Col3 INT)
--CREATE TABLE Utable2 (Col1 INT, Col2 INT, Col3 INT)
--CREATE TABLE Utable3 (Col1 INT, Col2 INT, Col3 INT)


DECLARE  @SelectClause  VARCHAR(100)    = 'SELECT Col1, Col2, Col3'
        ,@Query         VARCHAR(1000)   = '' 

SELECT @Query = @Query + @SelectClause + ' FROM ' + TABLE_NAME + ' UNION ALL '
FROM INFORMATION_SCHEMA.TABLES
WHERE (TABLE_NAME LIKE '%_CH1' OR TABLE_NAME LIKE '%_CH0')
AND TABLE_NAME NOT LIKE '%test%'

SELECT @Query = LEFT(@Query, LEN(@Query) - LEN(' UNION ALL '))

EXEC (@Query)
Run Code Online (Sandbox Code Playgroud)