我有这张桌子:

  ID   |  Name  | GroupORDER |
  1    |  John  |    1       |
  2    |   Ben  |    2       |
  3    |   Joe  |    2       |
  4    |  Paul  |    2       |
  5    |  Anna  |    2       |
  6    |  Tash  |    3       |
  7    |  Ryan  |    3       |


我想在一组之间交换一个查询GroupORDER并得到以下结果:

  ID   |  Name  | GroupORDER |
  1    |  John  |    1       |
  6    |  Tash  |    2       |
  7    |  Ryan  |    2       |
  2    |   Ben  |    3       |
  3    |   Joe  |    3       |
  4    |  Paul  |    3       |
  5    |  Anna  |    3       |


有任何想法吗?
像这样的完全错误的查询:

 UPDATE table SET GroupORDER = 2
 WHERE GroupORDER = 3 AND GroupORDER = 3 WHERE GroupORDER = 2;


我正在尝试通过一个查询来实现

最佳答案

试试这个代码,我没有经过测试,但我认为它可以工作:

UPDATE table
SET GroupOrder =
    CASE
        WHEN GroupOrder = 2 THEN 3
        WHEN GroupOrder = 3 THEN 2
        ELSE GroupOrder
    END
WHERE GroupOrder = 2 OR GroupOrder = 3;

08-24 19:14