如何删除SQLite数据库中的这些行



我在SQLite数据库中有一个表,如下所示:

+-------+------------+---------------+-------+------------+
| ROWID | student_id | qualification | grade | date_stamp |
+-------+------------+---------------+-------+------------+
|     1 |     000001 | Mathematics   | A     | 2022-04-01 |
|     2 |     000002 | NULL          | NULL  | 2022-03-01 |
|     3 |     000003 | Physics       | B     | 2022-03-01 |
|     4 |     000003 | NULL          | NULL  | 2022-02-01 |
+-------+------------+---------------+-------+------------+

这是一个学生考试成绩表,如果学生在某一科目上具有资格,则在表中显示为ROW#1。如果学生没有资格证书,则在表中显示为ROW#2。

ROW#3&4指的是一名学生(id 000003),他以前在数据库中没有资格证书,但现在物理成绩为B。我需要删除ROW#4,因为它现在有了一个限定,NULL值不再合适。学生000002的ROW#2应不受影响。

date_stamp列只显示该记录上次更新的时间。

感谢任何帮助,提前表示感谢。

您可以尝试使用现有逻辑进行删除:

DELETE
FROM yourTable
WHERE qualification IS NULL AND
EXISTS (
SELECT 1
FROM yourTable t
WHERE t.student_id = yourTable.student_id AND
t.qualification IS NOT NULL AND
t.date_stamp > yourTable.date_stamp
);