Max()中的自定义排序

时间:2015-08-06 16:07:57

标签: sql sql-server-2005 max

假设我有桌子'东西'其中有一列'排名'在排名栏中有5条记录,其中包括First,Second,Third,Fourth和Fifth。

我希望能够使用

{{1}}

返回'第五'而不是默认'第三'。

另外,我希望第四个被认为大于第三等等。

我该如何做到这一点?

SQL Server 2005

2 个答案:

答案 0 :(得分:3)

您需要有一个单独的查找表来将这些值链接到可以按其排序的数值。

答案 1 :(得分:1)

我建议:

而不是select top 1 ranking from things order by ranking desc;
case

这并不能解决你的问题,但它指出了一个好的方向。只需在order by中使用select top 1 ranking from things order by (case ranking when 'First' then 1 when 'Second' then 2 when 'Third' then 3 when 'Fourth' then 4 when 'Fifth' then 5 end) desc; 语句:

Advanced Compiler Settings

您也可以使用辅助表或子查询执行此查找。