關(guān)于PostgreSQL截取某個(gè)字段中的部分內(nèi)容進(jìn)行排序的問(wèn)題
一.最基本的order by排序
本文使用的測(cè)試數(shù)據(jù)庫(kù)信息如下:
1.單列排序案例:查詢(xún)student表中所有數(shù)據(jù)并且按照成績(jī)從大到小排序
SELECT * FROM student order by score desc
2.多列排序案例:查詢(xún)student表中所有數(shù)據(jù)并且先按照成績(jī)從大到小排序,如果成績(jī)相同,再按照 id 從大到小排序
兩種寫(xiě)法均可:
SELECT * FROM "student" order by (score,id) desc SELECT * FROM "student" order by score desc,id desc
錯(cuò)誤寫(xiě)法:
SELECT * FROM "student" order by score,id desc
上述寫(xiě)法的意思是:先按照成績(jī)從小到大排序,如果成績(jī)相同,再按照id從大到小排序
二.步入正題
開(kāi)發(fā)過(guò)程中遇到一個(gè)案例,例如上面student表中的學(xué)號(hào)字段(stu_number),學(xué)號(hào)前三位和后面三位都是相同的,現(xiàn)在需要按照stu_number的中間三位進(jìn)行從大到小排序,使用了substr()函數(shù)。
SELECT substr(stu_number,4,3),* FROM "student" order by substr(stu_number,4,3) desc
效果如下:
PostgreSQL中substr()函數(shù)的用法介紹:
1.從str內(nèi)容的第2個(gè)字符開(kāi)始截取,直到結(jié)束——substr(str,pos)
substr('HelloWord',2)
2.從str內(nèi)容的第2個(gè)字符開(kāi)始截取,截取長(zhǎng)度為3的字符串——substr(str,pos,len)
substr('HelloWord',2,3)
substr()函數(shù)的第一個(gè)參數(shù)可以為固定的字符串內(nèi)容,如上面的'HelloWord',也可以直接用數(shù)據(jù)庫(kù)表中的某個(gè)字段,如上面案例中填寫(xiě)的stu_number字段,但是填寫(xiě)的字段必須為字符串類(lèi)型
Java中substring()方法和PostgreSQL中substr()函數(shù)都是用來(lái)截取字符串的,但是用法上有些許區(qū)別:
1.Java中substring()方法的索引是從0開(kāi)始的,而PostgreSQL中substr()函數(shù)的索引是從1開(kāi)始的,例如:
//Java String str = "HelloWord"; String substr = str.substring(2); //PostgreSQL substr('HelloWord',2)
上面的Java代碼的意思是從第三個(gè)字符開(kāi)始截取,直到結(jié)束,而PostgreSQL代碼的意思是從第二個(gè)字符開(kāi)始截取,直到結(jié)束。
2.參數(shù)含義不同
Java中substring(int beginIndex, int endIndex)表示從第beginIndex+1個(gè)字符開(kāi)始截取,直到第endIndex個(gè)字符,例如:
String str = "HelloWord"; String substr = str.substring(2,6);
上面的Java代碼的意思是從第三個(gè)字符開(kāi)始截取,直到第六個(gè)字符,即截取的內(nèi)容為:lloW
PostgreSQL中substr(str, pos, len)函數(shù)表示從第pos個(gè)字符開(kāi)始截取,截取長(zhǎng)度為len的字符串,例如:
substr('HelloWord',2, 6)
上面的代碼的意思是從第二個(gè)字符開(kāi)始截取,截取長(zhǎng)度為6的字符串,即截取的內(nèi)容為:elloWo
到此這篇關(guān)于PostgreSQL截取某個(gè)字段中的部分內(nèi)容進(jìn)行排序的文章就介紹到這了,更多相關(guān)PostgreSQL排序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL 實(shí)現(xiàn)快速刪除一個(gè)用戶(hù)
這篇文章主要介紹了PostgreSQL 實(shí)現(xiàn)快速刪除一個(gè)用戶(hù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說(shuō)明
這篇文章主要介紹了PostgreSQL流復(fù)制參數(shù)max_wal_senders的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12PostgreSQL 對(duì)IN,EXISTS,ANY/ALL,JOIN的sql優(yōu)化方案
這篇文章主要介紹了PostgreSQL 對(duì)IN,EXISTS,ANY/ALL,JOIN的sql優(yōu)化方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01postgresql 實(shí)現(xiàn)多表關(guān)聯(lián)刪除
這篇文章主要介紹了postgresql 實(shí)現(xiàn)多表關(guān)聯(lián)刪除操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01Postgresql排序與limit組合場(chǎng)景性能極限優(yōu)化詳解
這篇文章主要介紹了Postgresql排序與limit組合場(chǎng)景性能極限優(yōu)化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12PostGresql 實(shí)現(xiàn)四舍五入、小數(shù)轉(zhuǎn)換、百分比的用法說(shuō)明
這篇文章主要介紹了PostGresql 實(shí)現(xiàn)四舍五入、小數(shù)轉(zhuǎn)換、百分比的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL字符切割:substring函數(shù)的用法說(shuō)明
這篇文章主要介紹了PostgreSQL字符切割:substring函數(shù)的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02如何查看postgres數(shù)據(jù)庫(kù)端口
這篇文章主要介紹了如何查看postgres數(shù)據(jù)庫(kù)端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01