SQL语句,可以使用INSERT INTO SELECT语句来实现将一个表中的行填充到另一个表中的列。
具体步骤如下:
这种方法适用于需要将源表中的数据按照一定规则填充到目标表中的列的情况,例如将一张表中的每一行数据作为目标表中的一列数据。
以下是一个示例:
假设有两个表,表A和表B,表A中有3行数据,表B中有3列,我们希望将表A中的每一行数据填充到表B的每一列中。
表A的结构如下:
CREATE TABLE 表A (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
表B的结构如下:
CREATE TABLE 表B (
col1 VARCHAR(50),
col2 VARCHAR(50),
col3 VARCHAR(50)
);
表A中的数据如下:
INSERT INTO 表A (id, name, age) VALUES
(1, 'John', 25),
(2, 'Amy', 30),
(3, 'Tom', 35);
使用INSERT INTO SELECT语句将表A中的数据填充到表B中的列:
INSERT INTO 表B (col1, col2, col3)
SELECT name, age, NULL FROM 表A WHERE id = 1
UNION ALL
SELECT NULL, name, age FROM 表A WHERE id = 2
UNION ALL
SELECT age, NULL, name FROM 表A WHERE id = 3;
执行以上SQL语句后,表B中的数据如下:
+------+------+------+
| col1 | col2 | col3 |
+------+------+------+
| John | NULL | NULL |
| NULL | Amy | NULL |
| NULL | NULL | Tom |
+------+------+------+
这样,我们就成功地将表A中的行填充到了表B中的列。
领取专属 10元无门槛券
手把手带您无忧上云