我在postgres 14.1数据库中为自然排序字符串(provider = icu,locale =‘’)提供了一个排序规则。NodeJS v12.16.1.当字符串有像1211 22这样的非零前导数时,排序对我来说是很好的。如果数字以零开头,我得到正确的顺序是以数字000、00、0、001、01、1、002、02、2为限,但在这种情况下,我希望得到像000、001、002、00、01、02、0、1、2这样的顺序。是否有任何方法可以使用区域设置或其他方式来获得这种行为。最主要的是,它应该工作得快( 2-3秒),大约一百万条记录。
发布于 2022-05-05 10:10:56
您可以按前导零的数字排序,然后按数值排序:
ORDER BY
length(col)
- length(trim(LEADING '0' FROM col))
DESC,
col COLLATE natural_collhttps://stackoverflow.com/questions/72123497
复制相似问题