假设我有一个包含大量记录(> 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)
如果没有更多的背景信息,很难准确说出你想要什么,但也许这样的东西可以工作?
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,更具体地说,您想要完成的任务,但可能会朝着正确的方向发展。