使用SELECT INTO语句的SQL查询

时间:2013-12-19 12:19:33

标签: sql sql-server

我对SQL的了解非常少,但我会尽力解释这个问题。

我有5个DB表在MS SQL Server中说 TAB1,TAB2,TAB3,TAB4,TAB5 。我正在开发一个中间件工具来集成到数据库系统。为此,我需要从数据库系统中检索表。

TAB1: MAT_ID, A1, A2, A3, A4

TAB2: MAT_ID, B1, B2

TAB3: MAT_ID, C1, C2, C3, C4, c5

TAB4: MAT_ID, D1, D2, D3, D4, D5, D6, D7

TAB5: MAT_ID, E1, E2, E3

我的结果应该如下

MAT_ID,A1,A2,A3,A4
MAT_ID,B1,B2
MAT_ID,C1,C2,C3,C4,c5
MAT_ID, D1, D2, D3, D4, D5, D6, D7
MAT_ID, E1, E2, E3

我的意思是应该追加所有的行显示。每个表中的列数将不同。另外,我需要对上述内容有如下额外要求。

  

MAT_ID将具有AA,BB,CC,DD,EE等值......

因此,当我为实例运行SQL查询时,我需要附加与单个MAT_ID相关的行,如下所示。

AA,A1,A2,A3,A4
AA,B1,B2
AA,C1,C2,C3,C4,c5

MAT_ID的值应该是动态的,我不能在Query中提及它。

我已经使用InnerJoin进行了检查,但它希望按预期工作。

我可以在确定DB表中不同MAT_ID的字段时添加一个额外的字段。如果您能提供其他任何选项,请与我们联系。 SELECT INTO也是我正在寻找的选项之一。

1 个答案:

答案 0 :(得分:0)

试试这个,不确定这是否是你需要的。只是根据你的问题猜测

select MAT_ID, A1, A2, A3,   A4,   null as a5, null as a6, null as a7 from TAB1
union all
select MAT_ID, B1, B2, null, null, null,       null,       null       from TAB2
union all
select MAT_ID, C1, C2, C3,   C4,   c5,         null,       null       from TAB3
union all
select MAT_ID, D1, D2, D3,   D4,   D5,         D6,         D7         from TAB4
union all
select MAT_ID, E1, E2, E3,   null, null,       null,       null       from TAB5