【发布时间】:2018-01-11 13:22:09
【问题描述】:
我想根据学生表中的总分获得排名。
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 的“CASE”) 无法识别的关键字。 (位置 37 的“WHEN”附近) 意外的标记。 (靠近位置 42 的“@PreviousRecord”) 意外的标记。 (靠近位置 58 的“=”) 意外的标记。 (在第 60 位接近“总计”) 无法识别的关键字。 (在位置 80 的“THEN”附近) 意外的标记。 (靠近位置 85 的“@Rank”) 无法识别的关键字。 (靠近位置 93 的“WHEN”) 意外的标记。 (靠近位置 98 的“@PreviousRecord”) 意外的标记。 (靠近位置 114 的“:=”) 意外的标记。 (接近位置 117 的“总计”) 无法识别的关键字。 (靠近位置 137 的“THEN”) 意外的标记。 (靠近位置 142 的“@Rank”) 意外的标记。 (靠近位置 148 的“:=”) 意外的标记。 (靠近位置 151 的“@Rank”) 意外的标记。 (靠近 po 的“+”
我的表结构是
【问题讨论】:
-
提供您的完整查询。
-
这就是我的全部查询
-
看起来你这里有语法错误:
result CASE...
标签: mysql