首页 > 解决方案 > 将变量 1 的相应单元格值匹配到无序变量 2 单元格

问题描述

专家,我需要将特定单元格(在变量 1 中)的值与放置在不同观察中的另一个单元格(变量 2)匹配。

我将分享示例集以使其清晰。

ID D1   D2   D1x D2x
1  Med1 Med4 abc Null
2  Med2 Med5 def Null
3  Med3 Med3 ghi Null
4  Med4 Med6 jkl Null
5  Med5 Med1 mno Null

这里的 D1 是指药物名称,D1x 是指通用名称。我手动更新了 Dx1 值。我只需要更新所有连续变量中的匹配值。预期输出:(使用更新查询)

ID D1   D2   D1x D2x
1  Med1 Med4 abc jkl
2  Med2 Med5 def mno
3  Med3 Med3 ghi ghi
4  Med4 Med6 jkl Null
5  Med5 Med1 mno abc

请建议一个代码更新查询,以便我可以在我的数据集中进行进一步分析。

标签: sql-server

解决方案


DECLARE @T TABLE(ID INT, D1 NVARCHAR(200), D2 NVARCHAR(200), D1x NVARCHAR(200), D2x NVARCHAR(200));

INSERT INTO @T (ID,D1,D2,D1x) VALUES
(1, 'Med1', 'Med4', 'abc'),
(2, 'Med2', 'Med5', 'def'),
(3, 'Med3', 'Med3', 'ghi'),
(4, 'Med4', 'Med6', 'jkl'),
(5, 'Med5', 'Med1', 'mno');

UPDATE t1
SET D2x = t2.D1x
OUTPUT 
  INSERTED.ID,
  INSERTED.D1,
  INSERTED.D2,
  INSERTED.D1x,
  INSERTED.D2x
FROM @T t1
LEFT JOIN @T t2
  ON t1.D2 = T2.D1

推荐阅读