關于PostgreSQL截取某個字段中的部分內容進行排序的問題
一.最基本的order by排序
本文使用的測試數(shù)據(jù)庫信息如下:

1.單列排序案例:查詢student表中所有數(shù)據(jù)并且按照成績從大到小排序
SELECT * FROM student order by score desc
2.多列排序案例:查詢student表中所有數(shù)據(jù)并且先按照成績從大到小排序,如果成績相同,再按照 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從大到小排序
二.步入正題
開發(fā)過程中遇到一個案例,例如上面student表中的學號字段(stu_number),學號前三位和后面三位都是相同的,現(xiàn)在需要按照stu_number的中間三位進行從大到小排序,使用了substr()函數(shù)。
SELECT substr(stu_number,4,3),* FROM "student" order by substr(stu_number,4,3) desc
效果如下:

PostgreSQL中substr()函數(shù)的用法介紹:
1.從str內容的第2個字符開始截取,直到結束——substr(str,pos)
substr('HelloWord',2)2.從str內容的第2個字符開始截取,截取長度為3的字符串——substr(str,pos,len)
substr('HelloWord',2,3)substr()函數(shù)的第一個參數(shù)可以為固定的字符串內容,如上面的'HelloWord',也可以直接用數(shù)據(jù)庫表中的某個字段,如上面案例中填寫的stu_number字段,但是填寫的字段必須為字符串類型
Java中substring()方法和PostgreSQL中substr()函數(shù)都是用來截取字符串的,但是用法上有些許區(qū)別:
1.Java中substring()方法的索引是從0開始的,而PostgreSQL中substr()函數(shù)的索引是從1開始的,例如:
//Java
String str = "HelloWord";
String substr = str.substring(2);
//PostgreSQL
substr('HelloWord',2)上面的Java代碼的意思是從第三個字符開始截取,直到結束,而PostgreSQL代碼的意思是從第二個字符開始截取,直到結束。
2.參數(shù)含義不同
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)函數(shù)表示從第pos個字符開始截取,截取長度為len的字符串,例如:
substr('HelloWord',2, 6)上面的代碼的意思是從第二個字符開始截取,截取長度為6的字符串,即截取的內容為:elloWo
到此這篇關于PostgreSQL截取某個字段中的部分內容進行排序的文章就介紹到這了,更多相關PostgreSQL排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL之分區(qū)表(partitioning)
通過合理的設計,可以將選擇一定的規(guī)則,將大表切分多個不重不漏的子表,這就是傳說中的partitioning。比如,我們可以按時間切分,每天一張子表,比如我們可以按照某其他字段分割,總之了就是化整為零,提高查詢的效能2016-11-11
深入解讀PostgreSQL中的序列及其相關函數(shù)的用法
這篇文章主要介紹了PostgreSQL中的序列及其相關函數(shù)的用法,包括序列的更新和刪除等重要知識,需要的朋友可以參考下2016-01-01
RuoYi從MySQL遷移到PostgreSQL數(shù)據(jù)庫的踩坑實錄
隨著業(yè)務發(fā)展對數(shù)據(jù)庫性能要求的提升,MySQL遷移至PostgreSQL成為企業(yè)級應用的常見需求,下面這篇文章主要介紹了RuoYi從MySQL遷移到PostgreSQL數(shù)據(jù)庫的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2026-02-02
postgresql 刪除重復數(shù)據(jù)的幾種方法小結
這篇文章主要介紹了postgresql 刪除重復數(shù)據(jù)的幾種方法小結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
PostgreSQL的generate_series()函數(shù)的用法說明
這篇文章主要介紹了PostgreSQL的generate_series()函數(shù)的用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

