📜  SQL Server INSERT INTO SELECT 通过完整示例 - NAYCode.com - SQL (1)

📅  最后修改于: 2023-12-03 15:35:04.772000             🧑  作者: Mango

SQL Server INSERT INTO SELECT 通过完整示例 - NAYCode.com - SQL

在SQL Server中使用INSERT INTO SELECT语句可以将一个表中的数据复制到另一个表中。SELECT语句用于选择要复制的数据,而INSERT INTO语句用于向目标表中插入数据。此外,可以在SELECT语句中使用WHERE和GROUP BY等语句来过滤和聚合数据。

示例

请考虑以下两个表:

  • 学生表:包含学生的姓名和年龄。
  • 学生登录表:包含学生的姓名、ID和登录时间。

下面是学生表的示例数据:

| Name | Age | |--------|-----| | Alice | 20 | | Bob | 22 | | Carol | 21 | | David | 19 |

下面是学生登录表的示例数据:

| Name | ID | LoginTime | |--------|----|----------------------| | Alice | 1 | 2020-01-01 08:00:00 | | Alice | 2 | 2020-01-02 09:00:00 | | Bob | 3 | 2020-01-02 10:00:00 | | Carol | 4 | 2020-01-03 11:00:00 | | Carol | 5 | 2020-01-04 12:00:00 | | David | 6 | 2020-01-05 13:00:00 |

现在,假设我们要将学生表中的所有学生信息复制到学生登录表中,并为每个学生生成一个随机ID和登录时间。可以使用以下SQL语句:

INSERT INTO StudentLogin (Name, ID, LoginTime)
SELECT Name, ABS(CHECKSUM(NEWID()) % 1000), GETDATE()
FROM Student

这条语句使用INSERT INTO SELECT语法,从学生表中选取每个学生的姓名,并使用CHECKSUM和NEWID函数生成一个随机ID,使用GETDATE函数生成一个登录时间。然后,将这些值插入到学生登录表中。

结论

INSERT INTO SELECT语句是一个非常强大的功能,可以轻松地将数据从一个表复制到另一个表中。在SELECT语句中,可以使用各种筛选和聚合函数来选择和处理数据。在INSERT INTO语句中,可以指定要插入的列名和值。这个例子只是一个简单的示例,但你可以根据自己的需要定制更复杂的查询。