SQL 从一个表或其他表中选择

use*_*270 5 sql db2 select

假设我有一个包含大量记录(> 100'000)的表 A 和一个与 A 具有相同列和大约相同数据量的表 B。是否有可能通过一个聪明的选择语句,我可以获得表 A 的所有记录表 B 的所有记录?

由于性能,我对我目前使用的方法不太满意:

select
     column1
    ,column2
    ,column3
from (
    select 'A' as tablename, a.* from table_a a
    union
    select 'B' as tablename, b.* from table_b b
) x
where 
    x.tablename = 'A'
Run Code Online (Sandbox Code Playgroud)

Kev*_*lia 1

如果没有更多的背景信息,很难准确说出你想要什么,但也许这样的东西可以工作?

DECLARE @TableName nvarchar(15);
DECLARE @Query nvarchar(50);

SELECT @TableName = YourField
FROM YourTable
WHERE ...

SET @Query = 'SELECT * FROM ' + @TableName

EXEC @Query
Run Code Online (Sandbox Code Playgroud)

语法可能会有所不同,具体取决于您使用的 RDBMS,更具体地说,您想要完成的任务,但可能会朝着正确的方向发展。