PostgreSQL函数——字符函数

1、md5(string)函数:将字符串进行md5编码

SELECT md5('a');
结果:0cc175b9c0f1b6a831c399e269772661

2、string || non-string ||string函数:字串或非字符串连接

select 'Post'||1||'greSQL';
结果:Post1greSQL

3、concat(s1[,s2,s3...sn])函数:返回结果为连接参数产生的字符串 

SELECT concat('hello','world');
结果:helloworld

4、concat_ws(x,s1 [,s2,s3...sn])函数:返回结果为用x分割的连接参数产生的字符串

SELECT concat_ws('_','P','G');
结果:P_G

5、ascii(string):参数第一个字符的ASCII码

select ascii('x');
结果:120

6、chr(int)函数:得到某ACSII值对应的字符

SELECT chr(97);
结果:a

7、to_hex(number int/bigint):对数值进行十六进制编码

select to_hex(31);
结果:1f

8、decode(string text, type text)函数:对字符串按指定的类型进行解码

SELECT decode('MTIzAAE=', 'base64');
结果:(BLOB) 5 bytes

9、encode(data bytea, type text)函数:与decode相反,对字符串按指定类型进行编码

SELECT encode(E'123\\000\\001', 'base64');
结果:MTIzAAE=

10、convert(string text, src_encoding name, dest_encoding name)函数:转换字符串编码,指定源编码与目标编码

select convert( 'text_in_utf8', 'UTF8', 'LATIN1');
结果:以ISO 8859-1编码表示的text_in_utf8

11、convert_from(string bytea, src_encoding name)函数:转换字符串编码,自己要指定源编码,目标编码默认为数据库指定编码

select convert_from('text_in_utf8', 'UTF8');
结果:text_in_utf8

12、convert_to(string text, dest_encoding name)函数:转换字符串编码,源编码默认为数据库指定编码,自己要指定目标编码

select convert_to('some text', 'UTF8');

13、bit_length(string)函数:计算字符串的位数

select bit_length('jose');
结果:32

14、octet_length(string)函数:计算字符串的字节数

select octet_length('jose');
结果:4

15、char_length(string)/character_length(string)函数:计算字符串中字符个数

select char_length('jose');
结果:4

16、length(string,[encoding name])函数:计算字符串长度,可指定字符串使用的编码

SELECT length('jose', 'UTF8');
结果:4

17、reverse(s)函数:将字符串s反转,返回的字符串的顺序和s字符顺序相反

SELECT reverse('abcd');
结果:dcba 

18、lower(string)函数:把字串转化为小写

select lower('TOM');
结果:tom

19、upper(string)函数:把字串转化为大写

SELECT upper('abc');
结果:ABC

20、initcap(string)函数:将字符串所有的单词进行格式化,首字母大写,其它为小写

select initcap('hi tHOMAS');
结果:Hi Thomas

21、strpos(string, substring)函数:指定字符串在目标字符串的位置

select strpos('high','ig');
结果:2

22、position(substring in string)函数:子串在一字符串中的位置

select position('om' in 'Thomas');
结果:3

23、overlay(string placing string from int [for int])函数:替换字符串中任意长度的子字串为新字符串

select overlay('Txxxxas' placing 'hom' from 2 for 4);
结果:Thomas

24、replace(string text, from text, to text)函数:将字符的某一子串替换成另一子串

select replace('abcdefabcdef', 'cd', 'XX');
结果:abXXefabXXef

25、translate(string text, from text, to text)函数:将字符串中某些匹配的字符替换成指定字符串,目标字符与源字符都可以同时指定多个

select translate('12345', '14', 'ax');
结果:a23x5

26、split_part(string text, delimiter text, field int)函数:对字符串按指定子串进行分割,并返回指定的数值位置的值

select split_part('abc~@~def~@~ghi', '~@~', 2);
结果:def

27、left(s,n)函数:返回字符串s开始的最左边n个字符

SELECT left('abcd',2);
结果:ab

28、right(s,n)函数:返回字符串s开始的最右边n个字符

SELECT right('abcd',2);
结果:cd 

29、substr(string, from [, count]):截取子串

select substr('alphabet', 3, 2);
结果:ph

30、substring(string [from int] [for int])函数: 截取任意长度的子字符串

select substring('Thomas' from 2 for 3);
结果:hom

31、substring(string from pattern)函数:利用正则表达式对一字符串进行任意长度的字串的截取

select substring('Thomas' from '...$');
结果:mas

32、substring(string from pattern for escape)函数利于正则表达式对某类字符进行删除,以得到子字符串

select substring('Thomas' from '%#"o_a#"%' for '#');
结果:oma

33、trim([leading丨trailing 丨 both] [characters] from string)函数:去除字串string【开头|结尾|两边】的某类字符(默认是空白字符),可同时指定多个要删除的字符串

select trim(both 'x' from 'xTomxx');
结果:Tom

34、btrim(string text [, characters text])函数:去除字符串两边的所有指定的字符,可同时指定多个字符

SELECT btrim('xyxtrimyyx', 'xy');
结果:trim

35、ltrim(string text [, characters text])函数:删除字符串左边某一些的字符,可以时指定多个要删除的字符

SELECT ltrim('xyxtrimyyx', 'xy');
结果:trimyyx

36、rtrim(string text [, character text])函数:去除字符串右边指定的字符

select rtrim('trimxxxx','x');
结果:trim

37、lpad(string text, length int [, fill text])函数:对字符串左边进行某类字符自动填充,即不足某一长度,则在左边自动补上指定的字符串,直至达到指定长度,可同时指定多个自动填充的字符

SELECT lpad('hi', 5, 'xy');
结果:xyxhi

38、rpad(string text, length int [, fill text])函数:对字符串进行填充,填充内容为指定的字符串

select rpad('hi', 5, 'xy');
结果:hixyx

39、repeat(string text, number int)函数:重复字符串一指定次数

select repeat('Pg', 4);
结果:PgPgPgPg

40、quote_ident(string text)函数:对某一字符串加上两引号

SELECT quote_ident('Foo bar');
结果:"Foo bar"

41、quote_literal(string text)函数:对字符串里两边加上单引号,如果字符串里面出现sql编码的单个单引号,则会被表达成两个单引号

SELECT quote_literal('OReilly');
结果:'OReilly'

42、regexp_replace(string text, pattern text, replacement text [, flags text])函数:利用正则表达式对字符串进行替换

select regexp_replace('Thomas', '.[mN]a.', 'M');
结果:ThM

43、regexp_matches(string text, pattern text [, flags text])函数:对字符串按正则表达式进行匹配,如果存在则会在结果数组中表示出来

SELECT regexp_matches('foobarbequebaz', '(bar)(beque)');
结果:{bar,beque}

44、regexp_split_to_array(string text, pattern text [, flags text ])函数:利用正则表达式将字符串分割成数组

SELECT regexp_split_to_array('hello world', E'\\s+');
结果:{hello,world}

45、regexp_split_to_table(string text, pattern text [, flags text])函数:利用正则表达式将字符串分割成表格

SELECT regexp_split_to_table('hello world', E'\\s+');
结果:hello
           world

人生若只如初见,何事秋风悲画扇。____纳兰性德《木兰词·拟古决绝词柬友》 

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值