客户Id有一个无法排序的问题,这是因为客户id被设计成前面有一个字母,因此id C10、C11、C12等会出现在C2之前。为了解决这个问题,我们决定匹配最大id的位数;例如,如果最大的客户id是C182,则此id有3位数,这意味着我们将向2位数的id添加1个零,并向仅1位数的id添加2个零(例如:C81将变为C 081,C7将变为C 007)。
这样做将有助于在需要时对id进行排序。我们如何在SQL中解决这个问题?
客户Id有一个无法排序的问题,这是因为客户id被设计成前面有一个字母,因此id C10、C11、C12等会出现在C2之前。为了解决这个问题,我们决定匹配最大id的位数;例如,如果最大的客户id是C182,则此id有3位数,这意味着我们将向2位数的id添加1个零,并向仅1位数的id添加2个零(例如:C81将变为C 081,C7将变为C 007)。
这样做将有助于在需要时对id进行排序。我们如何在SQL中解决这个问题?
1条答案
按热度按时间gmxoilav1#
您可以使用两种方法来执行此操作。
方法1
从id中移除'C',并将其转换为整数,然后在order by子句中使用它。
方法2
如果你需要根据id列中的数字进行排序,那么我们可以简单地根据id列的长度进行排序,然后再根据id本身进行排序。
在此处查找演示