首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SQL中交换和更新行的顺序?

如何在SQL中交换和更新行的顺序?
EN

Stack Overflow用户
提问于 2017-10-17 19:51:16
回答 2查看 197关注 0票数 0

我有一个名为Device的表,现在我需要为devid 5和devid 6交换devid行的顺序。

CurrentTable

代码语言:javascript
运行
复制
PID DEVID  INID EVTYPEID EVID   ALID    PARMID TEXTID  InputName  Input2Name
1   1       0     30      0    100102      0    14     998-TCR1     998-EMG1
1   2       0     30      0    100103      0    15     998-FR       998-TCR2
9   3       0     30      0    100113      0    25     998-TCR2     998-EMG2
0   4       2     30      0    100114      0    26     998-FR        NULL
8   5      18     4      53    100114      0    0      998-Sg op   998-Sg cl
4   6      17     4      53    1000114     0    0       SG_PB       RA_PB

预期结果

代码语言:javascript
运行
复制
PID DEVID  INID EVTYPEID EVID   ALID    PARMID TEXTID  InputName  Input2Name
1   1       0     30      0    100102      0    14     998-TCR1     998-EMG1
1   2       0     30      0    100103      0    15     998-FR       998-TCR2
9   3       0     30      0    100113      0    25     998-TCR2     998-EMG2
0   4       2     30      0    100114      0    26     998-FR        NULL
4   6      17     4      53    1000114     0    0       SG_PB       RA_PB
8   5      18     4      53    100114      0    0      998-Sg op   998-Sg cl

我的表中有150列,PID和RID是主键

EN

回答 2

Stack Overflow用户

发布于 2017-10-17 19:57:42

您当前的select语句加上:

代码语言:javascript
运行
复制
Order by case when DEVID = 6 then 5
when DEVID = 6 then 6
else Devid
end

不是一个很好的解决方案,而是回答了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2017-10-17 22:49:01

你需要使用一个临时数字来转换它们。

代码语言:javascript
运行
复制
UPDATE Device SET DEVID=-6 WHERE DEVID=6;
UPDATE Device SET DEVID=6 WHERE DEVID=5;
UPDATE Device SET DEVID=5 WHERE DEVID=-6;

如果另一个表与DEVID列有外键关系,那么它会变得更加棘手。选项:

  • 你可以打破外键关系,进行切换,然后把钥匙放回去。
  • 您可以使用DEVID=7创建临时记录(或其他未使用的内容),并在上面的查询中使用7作为占位符(而不是-6)。在这种情况下,不要忘记在你完成任务后删除你的虚拟记录。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46798113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档