【发布时间】:2019-10-16 00:11:20
【问题描述】:
我需要使用两个不同的条件更新单个合并语句中的多个列,例如
1. row_ind = N;更新一些列
2. row_ind = Y;更新一些列
我将如何在 sqlserver/oracle 中实现这一目标
WHEN MATCHED THEN
UPDATE SET TARGET.NodeId = SOURCE.StartNodeId,
TARGET.LinkId = SOURCE.Id where row_ind ='Y'
UPDATE SET TARGET.NodeId = SOURCE.EndNodeId,
TARGET.LinkId = SOURCE.Id where row_ind = 'N';
【问题讨论】:
-
您实际使用的是哪个数据库系统?对于 SqlServer,您可以查看表变量并通过连接进行更新
-
有什么理由不能把逻辑放在源子查询中?这将使更新部分更清晰。它肯定可以在 Oracle 中工作,并且可能也可以在 SQL Server 中工作。
标签: mysql sql-server oracle