如何在postgresql中按数字和字母数字项排序
我想对包含数字和字母数字项的列表进行排序,如下所示:如何在postgresql中按数字和字母数字项排序,postgresql,sorting,sql-order-by,numeric,alphanumeric,Postgresql,Sorting,Sql Order By,Numeric,Alphanumeric,我想对包含数字和字母数字项的列表进行排序,如下所示: SELECT colname FROM tablename ORDER BY colname::bytea; 皮耶萨1 0001 皮耶萨20 参考文献30 234 参考文献2 FDGSDFG 皮耶萨3 参考文献0004 参考文献2005 这就是我想要留下来的方式: 0001 234 FDGSDFG 皮耶萨1 皮耶萨3 皮耶萨20 参考文献0004 参考文献2 参考文献30 参考文献2005 但是,当我使用“order by”子句时,
SELECT colname
FROM tablename
ORDER BY colname::bytea;
- 皮耶萨1
- 0001
- 皮耶萨20
- 参考文献30
- 234
- 参考文献2
- FDGSDFG
- 皮耶萨3
- 参考文献0004
- 参考文献2005
- 0001
- 234
- FDGSDFG
- 皮耶萨1
- 皮耶萨3
- 皮耶萨20
- 参考文献0004
- 参考文献2
- 参考文献30
- 参考文献2005
SELECT colname
FROM tablename
ORDER BY colname::bytea;
- 0001
- 234
- FDGSDFG
- 皮耶萨1
- PIEZA20
- 皮耶萨3
- 参考文献0004
- 参考文献2
- REF2005
- 参考文献3
我不知道如何用字符串分隔数字进行排序,第一个是数字,第二个是字母数字顺序?尝试使用
按长度排序(列),列
事实上,这只是一个简短的版本,并不总是像预期的那样工作。如果您想要真正的自然排序,请使用以下命令:您可以尝试将字母数字列转换为数据类型,并尝试如下操作:
SELECT colname
FROM tablename
ORDER BY colname::bytea;
你能给我发个重复的问题吗?我发现了很多问题,但没有一个可以尝试此解决方案。我找到了它,但返回了显示的第三个列表