mysql查询从总分中获取排名时出错
我想根据学生表中的总分获得排名mysql查询从总分中获取排名时出错,mysql,Mysql,我想根据学生表中的总分获得排名 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
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个错误。
无法识别的关键字。(位置30的“案例”附近)
无法识别的关键字。(位置37的“何时”附近)
意外标记。(靠近位置42处的“@PreviousRecord”)
意外标记。(位置58处的“=”附近)
意外标记。(位置60处接近“总计”)
无法识别的关键字。(位置80的“THEN”附近)
意外标记。(在第85位的“@Rank”附近)
无法识别的关键字。(位置93的“何时”附近)
意外标记。(靠近位置98处的“@PreviousRecord”)
意外标记。(接近“:=”位置114处)
意外标记。(位置117处接近“总计”)
无法识别的关键字。(位置137的“THEN”附近)
意外标记。(靠近位置142处的“@Rank”)
意外标记。(接近“:=”位置148处)
意外标记。(位置151的“@Rank”附近)
意外标记。(在采购订单的“+”附近)
我的桌子结构是
尝试上面的查询
尝试上面的查询。提供完整的查询。这是我所有的查询,就像你在这里有语法错误一样:
结果案例
…提供完整的查询。这是我所有的查询,就像你在这里有语法错误一样:结果案例
…你能告诉我Z
在你的查询中是什么意思吗我刚刚给了子查询一个别名。是吗..Thank youUr Always Welcom您能告诉我Z
在您的查询中是什么意思吗我刚才给了子查询一个别名
SET @Rank = 0;
SELECT @Rank := @Rank+1,Z.studentid,Z.total
FROM
(
SELECT studentid,total
FROM studentdetails order by total
)Z