在SQL中创建列表并在FROM行之后的列表中进行迭代

时间:2019-01-11 16:02:31

标签: sql sql-server-2008

我想访问一些表,例如Toyota_Corolla,Toyota_Camry,Toyota_Prius,Toyota_Rav4

与其像下面那样输入多个SELECT语句:

SELECT * FROM Toyota_Corolla;
SELECT * FROM Toyota_Camry;
SELECT * FROM Toyota_Prius;
SELECT * FROM Toyota_Rav4;

是否可以创建一个字符串列表,例如['Corolla','Camry','Prius',Rav4'],并在FROM行之后遍历该列表,类似于以下内容:

SELECT * FROM 'Toyota_'` + 'some loop to iterate the list of car model'

以我的示例为例,将整个内容键入出来会更容易,但是当丰田有数百种车型时,情况又如何呢?

这是MS SQL Server DBMS

1 个答案:

答案 0 :(得分:1)

不。首先,您应该修复数据模型,以使您拥有一个带有丰田模型附加表的表格。这是存储数据的正确方法。

使用您拥有的数据,可以使用以下视图进行仿真:

create view vw_toyota as
    select 'Corolla' as toyota_model, t.* from Toyota_Corolla t union all
    select 'Camry' as toyota_model, t.* from Toyota_Camry t union all
    select 'Prius' as toyota_model, t.* from Toyota_Prius t union all
    select 'Rav4' as toyota_model, t.* from Toyota_Rav4 t;

这还将添加源表信息。

然后执行:

select *
from vw_toyota;