2024年4月28日发(作者:)
sqlserver merge写法
在SQL Server中,`MERGE`语句用于将两个表合并到一起。`MERGE`
语句的基本写法如下:
```sql
MERGE INTO target_table
USING source_table
ON target_ = source_
WHEN MATCHED THEN
UPDATE SET
target_ = source_
WHEN NOT MATCHED THEN
INSERT INTO target_table
(column1, column2, ...)
VALUES
(value1, value2, ...);
```
各部分解释如下:
- `target_table`:目标表,即要将数据合并到的表。
- `source_table`:源表,即提供要合并的数据的表。
- `ON`子句:指定连接条件,target_table的某个列和source_table的
某个列需要匹配。
- `WHEN MATCHED THEN`子句:当源表中的记录与目标表中的记录匹
配时,执行的更新操作。
- `UPDATE SET`子句:指定要更新的目标表列及其新值。
- `WHEN NOT MATCHED THEN`子句:当源表中的记录与目标表中的记
录不匹配时,执行的插入操作。
- `INSERT INTO`子句:指定要插入的列及其值。
这里有一个具体的例子:
假设我们有两个表`employees`和`contractors`,它们都有`first_name`、
`last_name`和`age`列。我们想要将这两个表合并为一个表,保留所有
人的信息。可以使用以下`MERGE`语句:
```sql
MERGE INTO employees
USING contractors
ON _name = _name
AND _name = _name
WHEN MATCHED THEN
UPDATE SET
= ;
WHEN NOT MATCHED THEN
INSERT INTO employees
(first_name, last_name, age)
VALUES
(_name, _name, );
```
这个语句将根据`first_name`和`last_name`列匹配`employees`和
`contractors`表中的记录,并将匹配的记录的`age`列更新为相同值。
对于不匹配的记录,将插入一个新的员工记录。
发布评论