Я хочу получить ранг на основе общей отметки в таблице учеников.
SET @PreviousRecord = NULL;
SET @Rank = 0;
SELECT studentid,total,result CASE
WHEN @PreviousRecord = total
THEN @Rank
WHEN @PreviousRecord := total
THEN @Rank := @Rank + 1
END AS ranks
FROM studentdetails
ORDER BY total;
Его работа не была ошибкой, поскольку
В ходе анализа было обнаружено 20 ошибок. Непризнанное ключевое слово. (около "CASE" в позиции 30) Непризнанное ключевое слово. (около "КОГДА" в позиции 37) Неожиданный токен. (рядом с "@PreviousRecord" в позиции 42) Неожиданный токен. (около "=" в позиции 58) Неожиданный токен. (около "всего" в позиции 60) Непризнанное ключевое слово. (около "THEN" в позиции 80) Неожиданный токен. (рядом с "@Rank" в позиции 85) Нераспознанное ключевое слово. (около "КОГДА" в позиции 93) Неожиданный токен. (рядом с "@PreviousRecord" в позиции 98) Неожиданный токен. (около ": =" в позиции 114) Неожиданный токен. (около "всего" в позиции 117) Непризнанное ключевое слово. (около "THEN" в позиции 137) Неожиданный токен. (рядом с "@Rank" в позиции 142) Неожиданный токен. (около ": =" в позиции 148) Неожиданный токен. (рядом с "@Rank" в позиции 151) Неожиданный токен. (около "+" при po
Моя структура таблицы
SET @Rank = 0;
SELECT @Rank := @Rank+1,Z.studentid,Z.total
FROM
(
SELECT studentid,total
FROM studentdetails order by total
)Z
Попробуйте выполнить запрос.
Z
означает в вашем запросе