加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:17:48 所属栏目:MsSql教程 来源:网络整理
导读:我有一张看起来像这样的桌子: SetId ID Premium2012 5 Y2012 6 Y2013 5 N2013 6 N 我想使用setid等于2012的溢价值来更新2013年的记录. 所以在查询之后,它将如下所示: SetId ID Premium2012 5 Y2012 6 Y2013 5 Y2013 6 Y 任何帮助非常感谢 解决方法 不清楚你
我有一张看起来像这样的桌子:
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读