请问这样的数据排序该如何进行?大侠进来。
候选人选项选票合计
程 敏同意6
冯希平反对3
冯希平弃权2
冯希平同意1
韩晓兰同意6
韩永成同意6
胡德渝弃权2
胡德渝同意4
黄瑞哲同意6
黄少宏同意6
李 刚同意6
这样的表,希望的结果是得到先按照同意最高的排序,得票相同的按照弃权再排序,两者都相同的按照反对的再排序。这该如何写sql语句? 是行列转换吗?谢谢!
[解决办法]
CREATE TABLE #temp (候选人 nvarchar(10), 选项 nvarchar(10), 选票合计 int)
INSERT INTO #temp
select '程敏','同意','6' union all
select '冯希平','反对','3' union all
select '冯希平','弃权','2' union all
select '冯希平','同意','1' union all
select '韩晓兰','同意','6' union all
select '韩永成','同意','6' union all
select '胡德渝','弃权','2' union all
select '胡德渝','同意','4' union all
select '黄瑞哲','同意','6' union all
select '黄少宏','同意','6' union all
select '李刚','同意','6'
SELECT 候选人,同意=ISNULL(同意,0),弃权=ISNULL(弃权,0),反对=ISNULL(反对,0)
FROM #temp a
PIVOT
(MAX(选票合计) FOR 选项 IN([同意], [弃权], [反对])) b
ORDER BY 同意 DESC, 弃权, 反对 --同意最多,弃权最少,反对最少
/*
候选人同意弃权反对
程敏600
韩晓兰600
韩永成600
黄瑞哲600
黄少宏600
李刚600
胡德渝420
冯希平123
*/