这个查询没有给出预期的结果,
我想做的是:
我正在尝试根据两个不同的列/字段和值对用户进行排名。并希望在顶部显示排名最高的用户。
我在选择查询中创建虚拟列作为 RANK 并使用两个 CASE ... AS RANK。
这是好习惯吗?还是有更好的出路?
PS:我真的不想保留 RANK 所以不存储它们,因为它将是来自各个字段的动态(这只是两个字段的示例)
SELECT *,
CASE EMPLOYEEOF
WHEN 'ASDF' THEN @RANK := @RANK+1
END AS RANK,
CASE VENDOROF
WHEN 'WXYZ' THEN @RANK := @RANK+1
END AS RANK
from USERMASTER, (SELECT @RANK := 0) r ORDER BY RANK DESC;
编辑:不给!在第 1 行