PostGreSQL 字符串处理

组合函数

  • concat 组合函数,将多个字符串拼接为一个字符串。concat函数纯粹是一个拼接函数,可以忽略null值拼接,拼接的值没有分隔符,如果需要分割符,则需要用下面的函数concat_ws。
  • concat_ws concat_ws函数比concat函数多了分隔符的功能,其实就是concat的升级版,假如分隔符为’’,则取出来的结果和concat是一样的。concat_ws分隔符还支持多个字符作为分隔符的,日常用得更多的可能是||。

切割函数

  • split_part 按分隔符切割字符串并返回指定位置的字符串
  • regexp_split_to_table 按分隔符切割字符串,以行数据返回分割后的字符串
--按分割符切割
SELECT regexp_split_to_table('kenyon, china loves',E'\\s');
 regexp_split_to_table 
-----------------------
 kenyon,
 china
 loves
-- 按字母分割
SELECT regexp_split_to_table('kenyon,,china', E'\\s*');
regexp_split_to_table 
-----------------------
 k
 e
 n
 y
 o
 n
 ,
 ,
 c
 h
 i
 n
 a
  • regexp_split_to_array 按分隔符切割字符串,以数组形式返回分割后的字符串
SELECT regexp_split_to_array('kenyon,love,,china,!',',');
regexp_split_to_array   
--------------------------
 {kenyon,love,"",china,!}
 SELECT regexp_split_to_array('kenyon,love,,china!','s*');
regexp_split_to_array             
-----------------------------------------------
 {k,e,n,y,o,n,",",l,o,v,e,",",",",c,h,i,n,a,!}

PostGreSQL 字符串截取

select split_part('AAA-BBBB-CCCCC','-',2)

该 SQL 语句的意思是根据 ‘-’ 将字符串进行分割,并返回分割后的第二部分

如果分隔符数量不一致的话,需要先计算分隔符的个数

-- 将 1个分隔符 替换为 2个分隔符,然后用长度相减得到分隔符数
-- 最后 +1 是为了取最后一部分内容
select split_part(table.column ,'-', length(replace(table.column, '-', '--')) - length(table.column) + 1)
from table

PostGreSQL 字符串拼接

select concat_ws(':', 'aaa', 'bbb')
-- aaa:bbb

-- 几行数据中的 同一 单字段值根据连接符拼接
select string_agg(name, '\r\n') from student
-- 1号\r\n2号\r\n3号\r\n4号\r\n5号

-- 如果要将多个字段的值拼接成一个:
select string_agg(concat_ws(':', name, sex),'\r\n' order by id) as xxx from student
-- 1号:0 \r\n 2号:0 \r\n 3号:0 \r\n 4号:0 \r\n 5号:1

PostGreSQL 日期时间函数

-- 获取系统时间:
select now();
select current_timestamp;
-- 俩函数效果一样

-- 获取日期:
select current_date;

-- 获取时间:
select current_time;

-- 获取当前日期一小时后:(Years、Months、Weeks、Days、Hours、Minutes、Seconds)
select now() + '1 hour';

-- 日期时间的截取
-- EXTRACT(field FROM source)
-- field 表示取的时间对象,source 表示取的日期来源,类型为 timestamp、time 或 interval。
select extract(year from now());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章