【发布时间】:2014-02-12 20:03:00
【问题描述】:
我是初学者,对 SQL 有一些基本的了解。我必须编写一个查询来从表中选择记录并插入到另一个表中。我的 TABLE1 有近 180 多列,而 TABLE2 只有 6 列。在 TABLE2 中,前 4 列是静态的,将直接来自 TABLE1。 TABLE2 中的其他 2 列是动态的。它们将由 180 多个列中的每一列填充,其中列名和列值来自 TABLE1。如果不是很清楚,让我用结构来解释一下:
>T1:
>===
>Col1, Col2, Col3, Col4, Col5,..........,Col175, Col176, Col177, Col178, Col179, Col180
>
>T2:
>===
>Col1, Col2, Col3, Col4, NewCol1, NewCol2
所以我想要一个查询来从 T1 中选择记录并将它们插入到 T2 中,这样
T2.Col1 = T1.Col1
T2.Col2 = T1.Col2
T2.Col3 = T1.Col3
T2.Col4 = T1.Col4
T2.NewCol1 = 来自 T1 的 Column_Name(即 Col5、Col6、Col7... Col180)
T2.NewCol2 = 我们存储在 T2.NewCol2 中的列的 Column_Value
这里是示例:
T1:
Col1 | Col2 | Col3 | Col4 | Col5 | Col6 | Col7 |科尔8 | Col9 | Col10 | Col11 | Col12
Val1 | val2 | VAL3 | val4 | VAL5 | VAL6 | VAL7 | VAL8 | VAL9 | VAL10 | VAL11 | val12
T2:
Col1 | Col2 | Col3 | Col4 | Col5 | Col6
Val1 | val2 | VAL3 | val4 | Col5 | Val5
VAL1 | val2 | VAL3 | val4 | Col6 | Val6
VAL1 | val2 | VAL3 | val4 | Col7 | Val7
VAL1 | val2 | VAL3 | val4 |科尔8 | Val8
VAL1 | val2 | VAL3 | val4 | Col9 | Val9
.
.
VAL1 | val2 | VAL3 | val4 | Col12 | val12
我想在单个动态查询中实现这一点。对格式表示歉意,如果有任何不清楚的地方。如果您需要任何东西,请告诉我。
谢谢,
桑杰
【问题讨论】:
-
一张表有 180 列?这是不对的。
-
嗨,Deve,实际上数据在一个文件中,我们必须处理并加载到表中。
标签: sql sql-server-2008