gpt4 book ai didi

sql-server - 我想交换 Microsoft SQL Server 中两个不同行中的列的值

转载 作者:行者123 更新时间:2023-12-03 01:27:15 26 4
gpt4 key购买 nike

我想在 Microsoft SQL SERVER 中执行以下两个 SQL 查询

UPDATE Partnerships SET sortOrder = 2 WHERE sortOrder = 1;
UPDATE Partnerships SET sortOrder = 1 WHERE sortOrder = 2;

唯一的问题是,我不允许 sortOrder 包含相同的值,它是唯一的键。由于第一个查询违反了唯一键规则并终止,我该如何解决这个问题?或者我是否必须摆脱我拥有的唯一 key 规则?

谢谢!

最佳答案

使用 CASE 一次性完成两行。每个过滤器键值需要一个 CASE 子句:

UPDATE Partnerships
SET sortOrder = CASE WHEN sortOrder = 1 THEN 2 ELSE 1 END
WHERE sortOrder IN (1, 2)

稍微厚颜无耻:

UPDATE Partnerships
SET sortOrder = 3-sortOrder
WHERE sortOrder IN (1, 2)

关于sql-server - 我想交换 Microsoft SQL Server 中两个不同行中的列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com