我有一个看起来像这样的表:
SetId ID Premium
2012 5 Y
2012 6 Y
2013 5 N
2013 6 N
我想使用setid等于2012的溢值(value)更新2013记录。
因此查询后,它看起来像这样:
SetId ID Premium
2012 5 Y
2012 6 Y
2013 5 Y
2013 6 Y
任何帮助,不胜感激
最佳答案
目前尚不清楚您要使用哪个2012年值来更新哪个2013年值,我假设ID
应该相同。
使用表变量的完整示例,您可以在Management Studio中进行测试。
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, 5, 'N')
INSERT INTO @Tbl VALUES (2013, 6, '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
关于sql - SQL Server-从同一表中的数据更新列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19094023/