0

我有一个名为照片的列,照片列的类型是 tinyint,从 0 到 8 不等。我想在从表中选择数据时对列应用排名。想要获得的值是:如果记录有 4 张或更多照片,则它获得 1 的排名。因为它是相当数量的照片,如 5、6、7 和 8。如果记录有 1 到 3 组等级为2,中等等级,如果没有照片集3。有了这个,可以根据照片的数量对记录进行排序,使我的应用程序保持一致。

4

1 回答 1

1

当然,您只需在 ORDER BY 中使用 CASE 语句。像这样的东西:

SELECT *
FROM Table
ORDER BY
   CASE 
   WHEN photos >= 4 THEN 1
   WHEN photos >= 1 THEN 2
   ELSE 3 
   END

或者,如果您希望它成为表上的实际列,则可以将其添加为计算列:

ALTER TABLE mytable ADD rank AS 
CASE 
   WHEN photos >= 4 THEN 1
   WHEN photos >= 1 THEN 2
   ELSE 3 
END
于 2013-07-17T17:53:38.577 回答