按包含数字和字母的字段排序

Dar*_*orf 4 sql delphi paradox delphi-xe2

我需要从Delphi XE2下的现有Padadox数据库中提取数据(是的,我超过10年将它们分开......).

我需要根据包含以下值的字段(示例中的id)对结果进行排序:'1','2 a','100','1b','50 bis'...并得到:

- 1
- 1 b
- 2 a
- 50 bis
- 100
Run Code Online (Sandbox Code Playgroud)

也许这样的事情可以做到,但那些关键字不存在:

SELECT id, TRIM(TRIM(ALPHA FROM id)) as generated, TRIM(TRIM(NUMBER FROM id)) as generatedbis, etc
FROM "my.db"
WHERE ...
ORDER BY generated, generatedbis
Run Code Online (Sandbox Code Playgroud)

我怎么能用矛盾实现这样的排序......?

kob*_*bik 7

试试这个:

SELECT id, CAST('0' + id AS INTEGER) A 
FROM "my.db" 
ORDER BY A, id
Run Code Online (Sandbox Code Playgroud)

  • 是的,它更简单.我的想法是''0'+`将处理`id`为空或第一个char为Alpha的情况.显然它不需要.很高兴我能帮助你. (2认同)