SQL Server – 从同一个表中的数据更新列

前端之家收集整理的这篇文章主要介绍了SQL Server – 从同一个表中的数据更新列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张看起来像这样的桌子:
SetId      ID       Premium
2012        5          Y
2012        6          Y
2013        5          N
2013        6          N

我想使用setid等于2012的溢价值来更新2013年的记录.

所以在查询之后,它将如下所示:

SetId      ID       Premium
2012        5          Y
2012        6          Y
2013        5          Y
2013        6          Y

任何帮助非常感谢

解决方法

不清楚你想用哪个2012值来更新哪个2013值,我假设ID应该是一样的.

使用表变量的完整示例,您可以在管理工作室中测试自己.

DECLARE @Tbl TABLE (
    SetId INT,Id INT,Premium VARCHAR(1)
)

INSERT INTO @Tbl VALUES (2012,5,'Y')
INSERT INTO @Tbl VALUES (2012,6,'Y')
INSERT INTO @Tbl VALUES (2013,'N')
INSERT INTO @Tbl VALUES (2013,'N')

--Before Update
SELECT * FROM @Tbl 

--Something like this is what you need
UPDATE t 
SET t.Premium = t2.Premium 
FROM @Tbl t 
INNER JOIN @Tbl t2 ON t.Id = t2.Id 
WHERE t2.SetId = 2012 AND t.SetId = 2013

--After Update    
SELECT * FROM @Tbl

猜你在找的MsSQL相关文章