最新版本更新
https://code.jiangjiesheng.cn/article/365?from=csdn
推荐 《高并发 & 微服务 & 性能调优实战案例100讲 源码下载》
-- 修改字段的排序规则
ALTER TABLE "public"."your_table_name" ALTER COLUMN "name" TYPE varchar(128) COLLATE "pg_catalog"."zh-Hans-CN-x-icu";
-- 升序但字母在最后
select name from your_table_name order by name ;
-- 升序且字母在前
SELECT name
FROM your_table_name
ORDER BY
CASE
WHEN name ~ '^[A-Za-z]' THEN 0 -- 英文开头的记录排在前面
ELSE 1 -- 中文记录排在后面
END ,
name COLLATE "pg_catalog"."zh-Hans-CN-x-icu"; -- 中文按拼音排序
-- 降序且字母在后
SELECT name
FROM your_table_name
ORDER BY
CASE
WHEN name ~ '^[A-Za-z]' THEN 1
ELSE 0
END ,
name COLLATE "pg_catalog"."zh-Hans-CN-x-icu" desc;