[英]SQL - trying to shift data in a table by one spot
在手动将数据输入到SQL数据库中时,我不小心开始输入错误的行。 在这个特定的表格中,我有一个ID列,其增量为1,2,3 ...,所以我觉得这可能是一个简单的修复。
我的表名为Sources。 具有时髦数据的列是SenderID,而我的递增ID列仅称为ID
如何将位于ID = Z的SenderID中的数据转移到ID = Z + 1的SenderID中,ID在一定范围内(例如> 33)? (将把ID = 33的SenderID放到ID = 34的SenderID中,依此类推)。 输入SenderID时,我下了一行,需要将第34-99行中的SenderID移到第35-100行。
我在沿着这些思路思考,但由于我对SQL语法不太熟悉,所以无法完全理解:
Update SenderID
Set SenderID = (SenderID)+1 // The statement giving me problems
Where ID > 33;
我要转移的数据是文本字符串。
Update sources s1 inner join sources s2 on s1.SenderID = s2.SenderID +1
Set s2.SenderID = s1.SenderID
Where s1.ID > 33
order by s1.ID;
您输入的表格名称错误,现在正确
更新了来自注释的查询,您将需要自连接并更新匹配的表。
您需要将表连接到自身,因此在同一行中同时拥有表的内容和表的内容,连接条件(id = id +1)允许发生这种情况
排序依据是确保其以正确的顺序运行,例如,在37之前未处理37,这会设置ID错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.