在我的数据库表中,我有
NAME SCORE
---------------
RAJ GOLD
MAYA SILVER
RAJ BRONZE
MAYA GOLD
RAJ SILVER
HARI SILVER
其中最高分为GOLD,SILVER,BRONZE
。
从这张表中我想显示网格视图中每个人的最高分。
输出应为:
NAME SCORE
----------------
RAJ GOLD
MAYA GOLD
HARI SILVER
怎么可能?通过程序,查询或gridview行数据绑定?
答案 0 :(得分:2)
您可以执行类似的操作将字符串转换为数字然后再转换回来:
SELECT NAME,
CASE WHEN MINSEQ=1 THEN 'GOLD'
WHEN MINSEQ=2 THEN 'SILVER'
ELSE 'BRONZE'
END
FROM
(select NAME,
MIN(CASE WHEN SCORE='GOLD' THEN 1 WHEN SCORE='SILVER' THEN 2 ELSE 3 END) AS MINSEQ
FROM TABLE
GROUP BY NAME) AS T
更好的解决方案是为另一个表中的每个分数分配一个数字并加入该表。
SCORE RANK
GOLD 1
SILVER 2
BRONZE 3
这样你就不必硬编码从得分到等级的转换。