我需要从Delphi XE2下的现有Padadox数据库提取数据(是的,我将它们分成了10多年)。由包含数字和字母的字段排序
我需要根据包含如'1','2 a','100','1b','50 bis'等值的字段(示例中的id)对结果进行排序...而得到这个:
- 1
- 1 b
- 2 a
- 50 bis
- 100
也许类似的东西可以做到这一点,但这些关键字不存在:
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
我怎么能取得这样的排序与矛盾...?
SELECT id,CAST(id AS INTEGER)...更简单,并且做到了!谢谢你的启发! – Darkendorf 2012-04-05 15:35:32
是的,它更简单。我的想法是,'0'+'将处理'id'为空或第一个字符为Alpha的情况。显然它不是必需的。很高兴我能帮上忙。 – kobik 2012-04-05 15:50:50
很好想过^^事实上,如果第一个字符是阿尔法,投射为int返回0 - 或null我真的不在乎 - 它是按我的需要订购! a,b,1,1b,12,100 bis ...再次感谢! – Darkendorf 2012-04-05 15:54:24