如何用一条SQL语句交换两条记录的某个字段值

时间:2020-12-26 14:48:44
假设一个表,有两个字段 [ID], [序号]
有两条记录 
id1, 1         
id2, 2
现在我想交换它们两个的序号,也就是说变成
id1, 2
id2, 1
能否用一条sql语句实现

11 个解决方案

#1


这个需求好奇怪啊。

SELECT T1.ID,T2.序号
FROM Table T1
JOIN Table T2 ON T2.ID<>T1.ID

#2


就是调整两条记录的次序,所以要交换它们的序号。我想用一条SQL语句实现
也就是 UPDATE .....

#3


Try this:

UPDATE Table1
SET 序号=T2.序号
FROM Table1 T2 WHERE T2.ID<>Table1.ID

#4


to 就是调整两条记录的次序,所以要交换它们的序号。我想用一条SQL语句实现
也就是 UPDATE ...

一句不太可能

#5


樓上的思路是對的,但是語法有錯誤。

UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID

#6


不好意思,說的樓上是kssys() ,語句使用的前提是確實只有兩條數據。


Create Table TEST(ID Varchar(50),序号 Int)
Insert TEST Select 'id1',1
Union All Select  'id2',2
GO
UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID

Select * From TEST
GO
Drop Table TEST
--Result
/*
ID 序号
id1 2
id2 1
*/

#7


多谢回答。数据库里显然不可能只有两条数据,

下面这样做不知可否

UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID 
where T2.ID=='id1' or T2.ID=='id2'

#8


id1, 1         
id2, 2
id3, 3
id4, 4

你UPDATE後的結果是怎樣的??



#9


好象语法错

#10


如果數據為

id1, 1         
id2, 2
id3, 3
id4, 4

你UPDATE後的結果是怎樣的??

#11


曾经有人考过我.
update table set a = b ,b=a 
不信可以试试,
a 也 b 的字段类型要一至.

#1


这个需求好奇怪啊。

SELECT T1.ID,T2.序号
FROM Table T1
JOIN Table T2 ON T2.ID<>T1.ID

#2


就是调整两条记录的次序,所以要交换它们的序号。我想用一条SQL语句实现
也就是 UPDATE .....

#3


Try this:

UPDATE Table1
SET 序号=T2.序号
FROM Table1 T2 WHERE T2.ID<>Table1.ID

#4


to 就是调整两条记录的次序,所以要交换它们的序号。我想用一条SQL语句实现
也就是 UPDATE ...

一句不太可能

#5


樓上的思路是對的,但是語法有錯誤。

UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID

#6


不好意思,說的樓上是kssys() ,語句使用的前提是確實只有兩條數據。


Create Table TEST(ID Varchar(50),序号 Int)
Insert TEST Select 'id1',1
Union All Select  'id2',2
GO
UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID

Select * From TEST
GO
Drop Table TEST
--Result
/*
ID 序号
id1 2
id2 1
*/

#7


多谢回答。数据库里显然不可能只有两条数据,

下面这样做不知可否

UPDATE T1
SET 序号=T2.序号
FROM TEST T2 Inner Join TEST T1 On T2.ID<>T1.ID 
where T2.ID=='id1' or T2.ID=='id2'

#8


id1, 1         
id2, 2
id3, 3
id4, 4

你UPDATE後的結果是怎樣的??



#9


好象语法错

#10


如果數據為

id1, 1         
id2, 2
id3, 3
id4, 4

你UPDATE後的結果是怎樣的??

#11


曾经有人考过我.
update table set a = b ,b=a 
不信可以试试,
a 也 b 的字段类型要一至.