关于PostgreSQL截取某个字段中的部分内容进行排序的问题

 更新时间:2023年06月28日 11:46:28   作者:知识永远不会背叛你  
这篇文章主要介绍了PostgreSQL截取某个字段中的部分内容进行排序,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一.最基本的order by排序

本文使用的测试数据库信息如下:

1.单列排序案例:查询student表中所有数据并且按照成绩从大到小排序

SELECT * FROM student order by score desc

2.多列排序案例:查询student表中所有数据并且先按照成绩从大到小排序,如果成绩相同,再按照 id 从大到小排序

两种写法均可:

SELECT * FROM "student" order by (score,id) desc
SELECT * FROM "student" order by score desc,id desc

错误写法:

SELECT * FROM "student" order by score,id desc

上述写法的意思是:先按照成绩从小到大排序,如果成绩相同,再按照id从大到小排序

二.步入正题

开发过程中遇到一个案例,例如上面student表中的学号字段(stu_number),学号前三位和后面三位都是相同的,现在需要按照stu_number的中间三位进行从大到小排序,使用了substr()函数。

SELECT substr(stu_number,4,3),* FROM "student" order by substr(stu_number,4,3) desc

效果如下:

PostgreSQL中substr()函数的用法介绍:

1.从str内容的第2个字符开始截取,直到结束——substr(str,pos)

substr('HelloWord',2)

2.从str内容的第2个字符开始截取,截取长度为3的字符串——substr(str,pos,len)

substr('HelloWord',2,3)

substr()函数的第一个参数可以为固定的字符串内容,如上面的'HelloWord',也可以直接用数据库表中的某个字段,如上面案例中填写的stu_number字段,但是填写的字段必须为字符串类型

Java中substring()方法和PostgreSQL中substr()函数都是用来截取字符串的,但是用法上有些许区别:

1.Java中substring()方法的索引是从0开始的,而PostgreSQL中substr()函数的索引是从1开始的,例如:

//Java
String str = "HelloWord";
String substr = str.substring(2);
//PostgreSQL
substr('HelloWord',2)

上面的Java代码的意思是从第三个字符开始截取,直到结束,而PostgreSQL代码的意思是从第二个字符开始截取,直到结束。

2.参数含义不同

Java中substring(int beginIndex, int endIndex)表示从第beginIndex+1个字符开始截取,直到第endIndex个字符,例如:

String str = "HelloWord";
String substr = str.substring(2,6);

上面的Java代码的意思是从第三个字符开始截取,直到第六个字符,即截取的内容为:lloW

PostgreSQL中substr(str, pos, len)函数表示从第pos个字符开始截取,截取长度为len的字符串,例如:

substr('HelloWord',2, 6)

上面的代码的意思是从第二个字符开始截取,截取长度为6的字符串,即截取的内容为:elloWo

到此这篇关于PostgreSQL截取某个字段中的部分内容进行排序的文章就介绍到这了,更多相关PostgreSQL排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgresql 计算两点距离的2种方法小结

    postgresql 计算两点距离的2种方法小结

    这篇文章主要介绍了postgresql 计算两点距离的2种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL数据库中如何保证LIKE语句的效率(推荐)

    PostgreSQL数据库中如何保证LIKE语句的效率(推荐)

    这篇文章主要介绍了PostgreSQL数据库中如何保证LIKE语句的效率,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Windows下Postgresql数据库的下载与配置方法

    Windows下Postgresql数据库的下载与配置方法

    这篇文章主要介绍了Windows下Postgresql数据库的下载与配置方法 ,需要的朋友可以参考下
    2014-06-06
  • PostgreSQL查找并删除重复数据的方法总结

    PostgreSQL查找并删除重复数据的方法总结

    这篇文章主要给大家介绍了PostgreSQL查找并删除重复数据的方法,文章通过代码示例介绍的非常详细,对大家的学习或工作有一点的帮助,需要的朋友可以参考下
    2023-10-10
  • postgresql 实现得到时间对应周的周一案例

    postgresql 实现得到时间对应周的周一案例

    这篇文章主要介绍了postgresql 实现得到时间对应周的周一,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • Postgresql查询效率计算初探

    Postgresql查询效率计算初探

    这篇文章主要给大家介绍了关于Postgresql查询效率计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Postgresql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • postgresql SQL语句变量的使用说明

    postgresql SQL语句变量的使用说明

    这篇文章主要介绍了postgresql SQL语句变量的使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • 在Ubuntu中安装Postgresql数据库的步骤详解

    在Ubuntu中安装Postgresql数据库的步骤详解

    PostgreSQL 是一款强大的,开源的,对象关系型数据库系统。它支持所有的主流操作系统,包括 Linux、Unix(AIX、BSD、HP-UX,SGI IRIX、Mac OS、Solaris、Tru64) 以及 Windows 操作系统。本文给大家介绍了在Ubuntu中安装Postgresql数据库的步骤,需要的朋友可以参考下。
    2017-09-09
  • PostgreSQL 如何修改文本类型字段的存储方式

    PostgreSQL 如何修改文本类型字段的存储方式

    这篇文章主要介绍了PostgreSQL 如何修改文本类型字段的存储方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • postgresql兼容MySQL on update current_timestamp问题

    postgresql兼容MySQL on update current_timestamp

    这篇文章主要介绍了postgresql兼容MySQL on update current_timestamp问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论