在数据库中,如果我有一个带有数字作为数据一部分的文本字段,并且我尝试排序,则数字不会按顺序返回,而是按字母顺序“伪”返回。
我“期待”这种行为并且对此感到满意。但是,如果可能,用户已请求按数字和字母顺序对事物进行排序。
示例数据(已排序):
100
1001
1110
1010101E
2
200
22ER
Abd
Bre
客户希望“2”在“100”之前排序,而“200”在“1001”之前排序,这会变得粘稠,这是数字/字母组合出现的地方。这个问题是因为被命名的项目可以命名为任何东西(“Box-one”、“Box 1”、“Box1”、“1Box”、“1”等),比如按“名字”排序,但是许多人给他们的孩子取一个数字——分类是一场噩梦。
我玩弄了对所有“仅数字”字段进行 UNION 的想法,将其转换为数字并排序,然后与 alpha-nums 联合...所以至少这些数字是“如预期的那样” - 但是开销似乎离谱。
根据用户的请求,我希望“2erd”应该在“100”之前排序,而“22Asd”应该在“22asd”之前排序
有什么建议或解决方案吗?这必须出现。我们正在使用 DB2 v9.5
前导零也是一个“问题”,因为“0000123”在“122”之前排序