SQL:儿童鞋号的排序列表

时间:2014-05-20 15:21:11

标签: mysql sql

截至目前,我有一个列出鞋号的清单。 这就是列表的例子。

1,1.5,2,2.5,10,10.5,11,12,13.5

我需要它看起来像这样 10,10.5,11,12,13.5,1,1.5,2,2.5

谢谢,我知道你可以用ORDER BY做到这一点,但我失败了。谢谢 以下是我尝试的例子。

ORDER BY priority=0, priority asc

2 个答案:

答案 0 :(得分:1)

如果您可以预测排序的计算,则可以在ORDER BY中使用它,例如在您的示例中,似乎通过将尺寸10+调整为<10尺寸以下,然后仍然按升序排序:

SELECT * FROM Shoes 
ORDER BY 
  CASE WHEN Size >= 10 
       THEN Size - 20 
       ELSE Size 
  END ASC;

SqlFiddle here

答案 1 :(得分:1)

您应该在尺寸表中添加另一列&#39; size_type&#39;。新列应该有两个可能的值:成人和儿童。

你会对&#39; size_type&#39;进行第一次排序。列和大小列上的第二个排序。