【发布时间】:2013-07-11 10:03:15
【问题描述】:
我正在尝试根据 select from table1 插入 into table2,但我无法获得正确的语法。来自 table1 的列名将驱动插入到 table2 的 PD_NO 列中的值,如下例所示。有人可以帮忙吗?
表1:
(1) (2) (3) (4) (5) (6)
| SEQ | PD_01 | PD_02 | PD_03 | PD_04 | PD_05 | PD_06 |
|-----+-------+-------+-------+-------+-------+-------|
| 632 | 10000 | 0 | 500 | 0 | 20000 | 0 |
表2:
| SEQ | PD_NO | AMT |
|-----+-------+-------|
| 632 | 1 | 10000 |
|-----+-------+-------|
| 632 | 3 | 500 |
|-----+-------+-------|
| 632 | 5 | 20000 |
|-----+-------+-------|
我知道如果我在另一个方向工作(将 table2 的内容插入 table1),我可以执行以下操作:
INSERT INTO table1
SELECT
seq,
SUM (CASE WHEN pd_no = 1 THEN amt ELSE 0 END) p01_amt,
SUM (CASE WHEN pd_no = 2 THEN amt ELSE 0 END) p02_amt,
SUM (CASE WHEN pd_no = 3 THEN amt ELSE 0 END) p03_amt,
SUM (CASE WHEN pd_no = 4 THEN amt ELSE 0 END) p04_amt,
SUM (CASE WHEN pd_no = 5 THEN amt ELSE 0 END) p05_amt,
SUM (CASE WHEN pd_no = 6 THEN amt ELSE 0 END) p06_amt
FROM table2;
【问题讨论】:
-
请用您正在使用的 RDBMS 品牌标记您的问题。例如。
sql-server、mysql、oracle等
标签: sql oracle select insert pivot-table