MySQL在计算列上排序

时间:2015-02-17 19:56:54

标签: mysql sorting calculated-columns

我有一张数据表如下:

field1 field2 realdata
------ ------ --------
ABC    01     1A
ABC    01     2A
ABC    01     1B
ABC    01     2B
ABC    01     10B
ABC    01     11B
ABC    01     10A
ABC    01     11A
ABC    02     10B
ABC    02     1A

我需要通过所有三个字段对数据进行排序。 A必须组合在一起,然后是B组,当然还要按数字顺序组合。

我创建了FormatRealData作为存储函数,它将RealData返回为: A-01, A-10, A-02, B-11, ... etc.这使我可以得到我需要的那种。

我有以下查询:

select field1, field2, RealData, FormatRealData(RealData) as SortData
from mytable
order by field1, field2, SortData

现在出现问题:

上述查询将被其他开发人员用于创建报告,我不想将SortData保留在那里,因为它永远不会出现在报告中,只有RealData应该出现。是否可以像我一样创建列,对数据进行排序,然后删除该列或不返回它?

1 个答案:

答案 0 :(得分:0)

SELECT field1, field2, RealData
FROM mytable
ORDER BY field1, field2, FormatRealData(RealData)