领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

PostgreSQL-中文字段排序-修改字段的排序规则

nixiaole 2025-05-22 12:36:42 知识剖析 3 ℃
-- 修改字段的排序规则
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; 
	

Tags:

最近发表
标签列表