postgresql,字符串函数

postgresql中的字符串函数有:计算字符串长度函数,字符串合并函数,字符串替换函数,字符串比较函数,查找指定字符串位置函数等。



1,计算字符串字符数和字符串长度的函数:char_length (str)和长度(str)

char_length (str)返回值为字符串str所包含的字符个数。一个多字节字符算作一个单字符。


例子:使用char_length函数计算字符串字符个数,如:


testdb=#选择char_length(& # 39;日期# 39;),char_length(& # 39;张# 39;);

, char_length | char_length 

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

,,,,,4 |大敌;,,,,,5

(1行)


长度(str)返回值为字符串的字节长度,使用utf8编码字符集时,一个汉字是3字节,一个数字或字母算一个字节。

testdb=#选择长度(& # 39;日期# 39;),长度(& # 39;张# 39;);

,长度| length 

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

,,,4 |,,,5

(1行)


注意:长度函数的计算结果和char_length函数相同,因为英文字符的个数和所占字节相同,一个字符占一个字节。


2,合并字符串函数:concat (s1, s2,,,,), concat_ws (x, s1, s2,,,,)

,concat (s1, s2,,,)返回结果为连接参数产生的字符串。任何一个参数为零,返回值就为null。如果所有参数为非二进制字符串,那么结果为非二进制字符串。如果自变量中含有任一二进制字符串,那么结果就为一个二进制字符串。

concat_ws (x, s1, s2,,,) x是与其他参数的分隔符。


例子:使用concat函数连接字符串,如下:

testdb=#选择concat (& # 39; postgresql # 39; & # 39; 9.6 & # 39;), concat (& # 39; postgresql # 39;, null, & # 39; testdb # 39;);

,,concat ,|大敌;,,concat ,,,

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

, postgresql9.6 | postgresqltestdb

(1行)



例子:使用concat_ws函数连接带分隔符的字符串,如:

=#选择testdb concat_ws (& # 39; _ # 39; & # 39; postgresql # 39;, & # 39; 9.6 & # 39;), concat_ws (& # 39; * * & # 39;, & # 39; postgresql # 39;, null, & # 39; testdb # 39;);

,,concat_ws ,|,,,concat_ws ,,,

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

, postgresql_9.6 | postgresql testdb * *

(1行)



3,获取指定长度的字符串的函数:左(s、n)和右(s、n)

左(s、n)返回字符串年代开始的最左边n个字符。


例子:使用左函数返回字符串中左边开始的5个字符,如

testdb=# select 左(& # 39;足球# 39;5);

, left ,

- - - - - - -

, footb

(1行)


正确(s、n)返回字符串年代最右边个字符


例子:使用正确的函数返回字符串中右边的字符,如:

testdb=# select 右(& # 39;足球# 39;4);

, right 

- - - - - - -

,

球(1行)


4,填充字符串的函数:lpad (len s1, s2)和rpad (len s1, s2)

lpad (len s1, s2)返回字符串s1,其左边由字符s2填充,填充长度为兰,加入s1的长度大于len,则返回值被缩短至兰字符。


例子:使用lpad函数对字符串进行填充操作,如下:


testdb=#选择lpad(& # 39;你好# 39;4,& # 39;? ? & # 39;),lpad(& # 39;你好# 39;,10日& # 39;? ? & # 39;);

, lpad |,,lpad ,,

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

,地狱| ? ? ? ? ?你好

(1行)


rpad (len s1, s2)返回字符串s1,其右边被字符串s2填补至兰字符长度。假如字符串的长度大于len,则返回值被缩短到与兰字符相同的长度。


例子:使用rpad函数对字符串进行填充操作,如:

=#选择testdb rpad(& # 39;你好# 39;4,& # 39;? & # 39;),rpad(& # 39;你好# 39;,10日& # 39;? & # 39;);

, rpad |,,rpad ,,

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

,地狱|喂? ? ? ? ?

(1行)


5,删除空格的函数:ltrim (s),空白(s)和修剪(s)

ltrim (s)返回字符串年代,字符串左侧空格字符被删除。


例子:使用ltrim函数删除字符串左边的空格,如:

=#选择& # 39;testdb(书)& # 39;concat (& # 39; (& # 39; ltrim (& # 39;书& # 39;),& # 39;)& # 39;);

, ?列?| concat ,

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

,(书)|(书)

(1行)


空白(s)返回字符串年代,字符串右侧空格字符被删除。


例子:使用空白函数删除字符串右边的空格,如:

postgresql,字符串函数