gpt4 book ai didi

sql - SQL 查询更新需要帮助

转载 作者:行者123 更新时间:2023-12-03 00:04:57 25 4
gpt4 key购买 nike

我有一个名为 Student_Details 的表,其中包含以下列:IDRoll_NoStudent_NameStudent_AddressStudent_Class

ID 是主键。

我遇到一个问题,每个学生的记录被分成两行。

例如,第一行包含:1, 20, john, '', '',第二行包含“2”、“”、“”、“ABCDEFG”、“A”

我想更新 Student_AddressStudent_Class 中的数据来自行 2 中的数据的 ID 为 1 的行中的字段,然后删除行2。该示例中的结果将是 1,20,'john',
'ABCDEFG','A'

有什么办法可以做到这一点吗?我不想使用光标,因为数据库大约有 50000 行。

最佳答案

没有安装 SQL Server,但使用标准 SQL 语法在 MySQL 中实现了此功能,因此它也应该适合您。

请注意,我为每列创建了 2 个 update-s,因为 MySQL 似乎不支持 UPDATE table SET (col1, col2) = (<a subquery with 2 columns>)语法。

我还将 UPDATE 子查询包装在另一个子查询中,这只是由于某些 MySQL 限制而必需的。

这 3 个查询可能应该在一个事务中运行:

update student_details s0 set s0.student_address = 
(
select student_address from (
select s1.id, s1.roll_no, s2.student_address
from student_details s1
join student_details s2
on s2.id=s1.id+1
) sub where sub.id = s0.id
)
where s0.roll_no <> '';

update student_details s0 set s0.student_class =
(
select student_class from (
select s1.id, s1.roll_no, s2.student_class
from student_details s1
join student_details s2
on s2.id=s1.id+1
) sub where sub.id = s0.id
)
where s0.roll_no <> '';

delete from student_details where roll_no='';

关于sql - SQL 查询更新需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7547392/

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