У меня есть пример, который не может понять. Приведенный ниже код выбирает имя и оценки для всех студентов из моей базы данных. Я хочу создать скрипт, который удалит наименьший класс каждого ученика. BUT, если наименьший класс 3, и у ученика 2 класса 3, я хотел бы удалить только один из них (случайный или первый, мне все равно, я не хочу ставить правило для этого); То, что я здесь работает нормально, но удаление всех сортов 3.Удалить минимальное значение
DECLARE
nume studenti.nume%TYPE;
nota note_studenti.nota%TYPE;
CURSOR myc IS SELECT nume, nota
FROM studenti INNER JOIN note_studenti
ON studenti.mat = note_studenti.mat;
BEGIN
OPEN myc;
LOOP
FETCH myc INTO nume, nota;
EXIT WHEN myc%NOTFOUND;
END LOOP;
DELETE FROM note_studenti WHERE nota =
(SELECT MIN(note_studenti.nota) FROM note_studenti);
CLOSE myc;
END;
LE: Я понял, как удалить наименьший класс. Теперь мне нужно просто удалить только одну строку, а не все.
использование * LIMIT * в конце. – kashan
Можете ли вы уточнить, пожалуйста? Я попытался использовать «LIMIT 1», «LIMIT = 1» и «FIRST 1 ROWS ONLY», но каждый раз, когда я получал эту ошибку, моя команда SQL не была должным образом закончена. Я добавил ограничение сразу после последней скобки. – redhat01
DELETE FROM note_studenti WHERE nota = (SELECT MIN (note_studenti.nota) FROM note_studenti) limit 1 – kashan