sqlserver中同一张表根据sqbh来关联数据,再根据requestid是否为空做判断,将requestid不为空的id,name更新到requestid为空的字段中
时间: 2024-09-30 08:08:58 浏览: 36
在SQL Server中,你可以使用 `UPDATE` 语句结合 `CASE` 表达式来实现这个需求。假设我们有一个名为 `Table_Name` 的表,其中包含 `sqbh`, `requestid`, 和其他字段,你需要根据 `sqbh` 进行匹配,并将非空的 `requestid` 更新到那些 `requestid` 为空的记录上。以下是相应的 SQL 示例:
```sql
UPDATE Table_Name
SET requestid = COALESCE(CASE WHEN requestid IS NOT NULL THEN requestid ELSE Other_Table.requestid END),
-- 其他需要更新的字段...
FROM Table_Name
LEFT JOIN (
SELECT sqbh, requestid
FROM Table_Name
WHERE requestid IS NOT NULL
) AS Other_Table
ON Table_Name.sqbh = Other_Table.sqbh;
```
这里,`COALESCE` 函数用于处理可能出现的 `NULL` 值,如果 `requestid` 不为空,则直接赋值;如果不为空则从 `Other_Table` 中获取对应 `sqbh` 的 `requestid` 值。请记得替换 `Table_Name`, `sqbh`, `requestid`, 和 `Other_Table`(如果有另一个表提供非空的 `requestid`)为你实际的表名和字段名。
阅读全文