Postgresql之前用的比较少,最近遇到的一个排序问题,中文排序与Oracle还有点不同。
现在说明下在指定中的情况下排序,如有一个情况是这样,需要按照“浙江”,“杭州”,“绍兴”,“宁波”这样的顺序排序地市名称,当然方法有很多种,比如给定每条数据添加一个order_id,即排序字段等,我这边说的是,不做表的额外操作,只是在sql中指定顺序,测试情况如下:
创建表和插入数据
create table users(organization varchar(100),name_ varchar(100));
insert into users values('浙江','a');
insert into users values('绍兴','a');
insert into users values('杭州','a');
insert into users values('宁波','a');
单纯排序
select * from users order by organization
输出结果为杭州,宁波,绍兴,浙江
输出的结果与要求不符,那么
select * from users order by (organization='浙江',organization='杭州',organization='绍兴',organization='宁波') desc
就符合要求了