postgresql——字符串函数

字符串函数:

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

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

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

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

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

char_length | char_length

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

4 |           5

(1 row)

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

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

length | length

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

4 |      5

(1 row)

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

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

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

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

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

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

concat     |      concat

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

postgresql9.6 | postgresqltestdb

(1 row)

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

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

concat_ws    |     concat_ws

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

postgresql_9.6 | postgresql**testdb

(1 row)

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

left(s,n)返回字符串s开始的最左边n个字符。

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

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

left

-------

footb

(1 row)

right(s,n)返回字符串s最右边个字符

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

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

right

-------

ball

(1 row)

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

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

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

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

lpad |    lpad

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

hell | ?????hello

(1 row)

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

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

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

rpad |    rpad

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

hell | hello?????

(1 row)

5、删除空格的函数:ltrim(s)、rtrim(s)和trim(s)

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

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

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

?column? | concat

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

( book ) | (book )

(1 row)

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

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

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

?column? | concat

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

( book ) | ( book)

(1 row)

trim(s)删除字符串s两侧的空格。

例子:使用trim函数删除指定字符串两端的空格,如:

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

?column? | concat

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

( book ) | (book)

(1 row)

6、删除指定字符串的函数:trim(s1 from s)

trim(s1 from s)删除字符串s中两端所有的子字符串s1.s1为可选项,在未指定情况下删除空格。

例子:使用trim(s1 from s)函数删除字符串中两端指定的字符,如:

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

btrim

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

anghellzhnihao

(1 row)

7、重复生成字符串的函数:repeat(s,n)

repeat(s,n)返回一个由重复的字符串s组成的字符串,n表示重复生成的次数。若n<=0,则返回一个空字符串;若s或n为null,则返回null。

例子:使用repeat函数重复生成相同的字符串,如:

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

repeat

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

zhangzhangzhang

(1 row)

8、替换函数:replace(s,s1,s2)

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

例子:使用replace函数进行字符串替代操作。

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

replace

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

zzz.baidu.com

(1 row)

9、获取子串的函数:substring(s,n,len)

substring(s,n,len)表示从字符串s返回一个长度为len的子字符串,起始于位置n。也可能对n使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的n的字符,即倒数第n个字符。

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)

注意:如果对len使用的是一个小于1的值,那么结果始终为整个字符串。

10、匹配子串开始位置的函数:position(str1  in  str)

position(str1  in  str)函数的作用是返回子字符串str1在字符串str中的开始位置。

例子:使用position函数查找字符串中指定str1在字符串的开始位置,如:

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

position

----------

5

(1 row)

11、字符串逆序函数:reverse(s)

reverse(s)将字符串s反转,返回的字符串的顺序和s字符顺序相反。

例子:使用reverse函数反转字符串,如:

testdb=# select reverse('abc');

reverse

---------

cba

(1 row)

原文地址:http://blog.51cto.com/fengfeng688/2151139

时间: 2024-10-13 15:12:23

postgresql——字符串函数的相关文章

PostgreSQL字符串函数——POSITION

今天因为要处理曾经的一个Bug产生的数据库字段内容冗余的问题,需要用到截取函数. 在网上翻阅了一下,找到了这个字符串函数POSITION. POSITION(substr IN str) POSITION(substr IN str) is a synonym for LOCATE(substr,str). 下面是官方文档的地址 https://www.postgresql.org/docs/9.3/static/functions-string.html 用的时候,是想去掉字段里的下划线.用过

postgresql字符串函数

函数 返回类型 描述 例子 结果 string || string text 字串连接 'Post' || 'greSQL' PostgreSQL bit_length(string) int 字串里二进制位的个数 bit_length('jose') 32 char_length(string) int 字串中的字符个数 char_length('jose') 4 convert(string using conversion_name) text 使用指定的转换名字改变编码. convert

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

高级字符串函数

查找一个字符串前缀 size_t strspn(char const *str,char const *group) size_t strcspn(char const *str,char const *group) strspn 返回str起始部分匹配group中任意字符的字符数 strcspn他对str字符串起始部分中部与group中任何字符匹配的字符进行技术 在字符串中查找指定字符串最后一次出现的位置 strrstr #include<stdio.h> #include<asser

【原创】用第三方语言编写PostgreSQL 存储函数

在PostgreSQL里,所有的存储函数需求都可以用PLPGSQL来实现.同时也支持用第三方语言来编写,这个就得看自己哪个方面熟练了.不过要注意的一点是 PLPGSQL的效率怎么着都比其他第三方语言来的高效.比如,简单的插入表的存储函数: CREATE OR REPLACE FUNCTION ytt.insert_plpgsql(f_num integer) RETURNS void LANGUAGE plpgsql AS $ytt$ declare i int := 0; v_rank int

mysql学习笔记(五)--- 字符串函数、日期时间函数

一.常见字符串函数: 1.CHAR_LENGTH  获取长度(字符为单位) 2.FORMAT  格式化 3.INSERT  替换的方式插入 4.INSTR  获取位置 5.LEFT/RIGHT  取左.取右 6.LENGTH   获取长度(字节为单位) 7.LTRIM/RTRIM/TRIM 去空格(左/右/自定义) 8.STRCMP  字符串比较 9.CONCAT  字符串拼接 10.SUBSTRING  字符串截取 1.CHAR_LENGTH:获取长度(字符为单位) CHAR_LENGTH()

SQL字符串函数

LEN() :计算字符串长度(字符的个数.)datalength();//计算字符串所占用的字节数,不属于字符串函数.测试varchar变量与nvarchar变量存储字符串a的区别.见备注1.LOWER() .UPPER () :转小写.大写LTRIM():字符串左侧的空格去掉 RTRIM () :字符串右侧的空格去掉 LTRIM(RTRIM('         bb        '))LEFT().RIGHT()  截取取字符串SELECT LEFT('abcdefg',2) SUBSTRI

前端学PHP之字符串函数

前面的话 字符串的处理和分析在任何编程语言中都是一个重要的基础,往往是简单而重要的.信息的分类.解析.存储和显示,以及网络中的数据都需要操作字符串来完成.尤其在web开发中更为重要,程序员大部分工作都是在操作字符串,本文将详细介绍php中的字符串函数 [注意]关于javascript中字符串的属性和方法移步至此 特点 因为php是弱类型语言,所以其他类型的数据一般都可以直接应用于字符串操作函数中,而自己转换成字符串类型进行处理 echo substr( "1234567", 2, 4

Python学习入门教程,字符串函数扩充详解

因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习并参与本教程的完善与写作.请在下方讨论区,回复相关问题.一起完善本文章教程的书写. Python字符串常用函数. 声明字符串变量: str = ‘关注做全栈攻城狮,写代码也要读书,爱全栈,更爱生活.’ 下面所有字符串函数函数,是对变量str进行操作: 求字符串长度: 函数使用: 运行结果: 值得注意