postgresql——字符串函數(shù)

字符串函數(shù):

目前創(chuàng)新互聯(lián)建站已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、三明網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

postgresql中的字符串函數(shù)有:計(jì)算字符串長(zhǎng)度函數(shù)、字符串合并函數(shù)、字符串替換函數(shù)、字符串比較函數(shù)、查找指定字符串位置函數(shù)等。

1、計(jì)算字符串字符數(shù)和字符串長(zhǎng)度的函數(shù):char_length(str)和length(str)

char_length(str)返回值為字符串str所包含的字符個(gè)數(shù)。一個(gè)多字節(jié)字符算作一個(gè)單字符。

例子:使用char_length函數(shù)計(jì)算字符串字符個(gè)數(shù),如:

testdb=# select char_length('date'),char_length('zhang');

 char_length | char_length 

-------------+-------------

           4 |           5

(1 row)

length(str)返回值為字符串的字節(jié)長(zhǎng)度,使用utf8編碼字符集時(shí),一個(gè)漢字是3字節(jié),一個(gè)數(shù)字或字母算一個(gè)字節(jié)。

testdb=# select length('date'),length('zhang');

 length | length 

--------+--------

      4 |      5

(1 row)

注意:length函數(shù)的計(jì)算結(jié)果和char_length函數(shù)相同,因?yàn)橛⑽淖址膫€(gè)數(shù)和所占字節(jié)相同,一個(gè)字符占一個(gè)字節(jié)。

2、合并字符串函數(shù):concat(s1,s2,,,,)、concat_ws(x,s1,s2,,,,)

  concat(s1,s2,,,)返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。任何一個(gè)參數(shù)為null,返回值就為null。如果所有參數(shù)為非二進(jìn)制字符串,那么結(jié)果為非二進(jìn)制字符串。如果自變量中含有任一二進(jìn)制字符串,那么結(jié)果就為一個(gè)二進(jìn)制字符串。

concat_ws(x,s1,s2,,,)x是與其他參數(shù)的分隔符。

例子:使用concat函數(shù)連接字符串,如下:

testdb=# select concat('postgresql','9.6'),concat('postgresql',null,'testdb');

    concat     |      concat      

---------------+------------------

 postgresql9.6 | postgresqltestdb

(1 row)

例子:使用concat_ws函數(shù)連接帶分隔符的字符串,如:

testdb=# select concat_ws('_','postgresql','9.6'),concat_ws('**','postgresql',null,'testdb');

   concat_ws    |     concat_ws      

----------------+--------------------

 postgresql_9.6 | postgresql**testdb

(1 row)

3、獲取指定長(zhǎng)度的字符串的函數(shù):left(s,n)和right(s,n)

left(s,n)返回字符串s開(kāi)始的最左邊n個(gè)字符。

例子:使用left函數(shù)返回字符串中左邊開(kāi)始的5個(gè)字符,如

testdb=# select  left('football',5);

 left  

-------

 footb

(1 row)

right(s,n)返回字符串s最右邊個(gè)字符

例子:使用right函數(shù)返回字符串中右邊的字符,如:

testdb=# select  right('football',4);

 right 

-------

 ball

(1 row)

4、填充字符串的函數(shù):lpad(s1,len,s2)和rpad(s1,len,s2)

lpad(s1,len,s2)返回字符串s1,其左邊由字符s2填充,填充長(zhǎng)度為len,加入s1的長(zhǎng)度大于len,則返回值被縮短至len字符。

例子:使用lpad函數(shù)對(duì)字符串進(jìn)行填充操作,如下:

testdb=# select lpad('hello',4,'??'),lpad('hello',10,'??');

 lpad |    lpad    

------+------------

 hell | ?????hello

(1 row)

rpad(s1,len,s2)返回字符串s1,其右邊被字符串s2填補(bǔ)至len字符長(zhǎng)度。假如字符串的長(zhǎng)度大于len,則返回值被縮短到與len字符相同的長(zhǎng)度。

例子:使用rpad函數(shù)對(duì)字符串進(jìn)行填充操作,如:

testdb=# select rpad('hello',4,'?'),rpad('hello',10,'?');

 rpad |    rpad    

------+------------

 hell | hello?????

(1 row)

5、刪除空格的函數(shù):ltrim(s)、rtrim(s)和trim(s)

ltrim(s)返回字符串s,字符串左側(cè)空格字符被刪除。

例子:使用ltrim函數(shù)刪除字符串左邊的空格,如:

testdb=# select '( book )',concat('(',ltrim(' book '),')');

 ?column? | concat  

----------+---------

 ( book ) | (book )

(1 row)

rtrim(s)返回字符串s,字符串右側(cè)空格字符被刪除。

例子:使用rtrim函數(shù)刪除字符串右邊的空格,如:

testdb=# select '( book )',concat('(',rtrim(' book '),')');

 ?column? | concat  

----------+---------

 ( book ) | ( book)

(1 row)

trim(s)刪除字符串s兩側(cè)的空格。

例子:使用trim函數(shù)刪除指定字符串兩端的空格,如:

testdb=# select '( book )',concat('(',trim(' book '),')');

 ?column? | concat 

----------+--------

 ( book ) | (book)

(1 row)

6、刪除指定字符串的函數(shù):trim(s1 from s)

trim(s1 from s)刪除字符串s中兩端所有的子字符串s1.s1為可選項(xiàng),在未指定情況下刪除空格。

例子:使用trim(s1 from s)函數(shù)刪除字符串中兩端指定的字符,如:

testdb=# select trim('zh' from 'zhanghellzhnihao');

     btrim      

----------------

 anghellzhnihao

(1 row)

7、重復(fù)生成字符串的函數(shù):repeat(s,n)

repeat(s,n)返回一個(gè)由重復(fù)的字符串s組成的字符串,n表示重復(fù)生成的次數(shù)。若n<=0,則返回一個(gè)空字符串;若s或n為null,則返回null。

例子:使用repeat函數(shù)重復(fù)生成相同的字符串,如:

testdb=# select repeat('zhang',3);

     repeat      

-----------------

 zhangzhangzhang

(1 row)

8、替換函數(shù):replace(s,s1,s2)

replace(s,s1,s2)使用字符串s2替代字符串s中所有字符串s1.

例子:使用replace函數(shù)進(jìn)行字符串替代操作。

testdb=# select replace('www.baidu.com','w','z');

    replace    

---------------

 zzz.baidu.com

(1 row)

9、獲取子串的函數(shù):substring(s,n,len)

substring(s,n,len)表示從字符串s返回一個(gè)長(zhǎng)度為len的子字符串,起始于位置n。也可能對(duì)n使用一個(gè)負(fù)值。假若這樣,則子字符串的位置起始于字符串結(jié)尾的n的字符,即倒數(shù)第n個(gè)字符。

testdb=# select substring('zhanghello',5) as a1,substring('zhanghello',5,3) as a2,substring('lunch',-3) as a3;

   a1   | a2  |  a3   

--------+-----+-------

 ghello | ghe | lunch

(1 row)

注意:如果對(duì)len使用的是一個(gè)小于1的值,那么結(jié)果始終為整個(gè)字符串。

10、匹配子串開(kāi)始位置的函數(shù):position(str1  in  str)

position(str1  in  str)函數(shù)的作用是返回子字符串str1在字符串str中的開(kāi)始位置。

例子:使用position函數(shù)查找字符串中指定str1在字符串的開(kāi)始位置,如:

testdb=#  select position('ball' in 'football');

 position 

----------

        5

(1 row)

11、字符串逆序函數(shù):reverse(s)

reverse(s)將字符串s反轉(zhuǎn),返回的字符串的順序和s字符順序相反。

例子:使用reverse函數(shù)反轉(zhuǎn)字符串,如:

testdb=# select reverse('abc');

 reverse 

---------

 cba

(1 row)

當(dāng)前題目:postgresql——字符串函數(shù)
文章來(lái)源:http://muchs.cn/article14/ipjege.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)