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());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章