最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

postgresql 將逗號分隔的字符串轉(zhuǎn)為多行的實(shí)例

 更新時(shí)間:2021年02月01日 09:46:37   作者:Mr.喬  
這篇文章主要介紹了postgresql 將逗號分隔的字符串轉(zhuǎn)為多行的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

-- 將逗號分隔的字符串轉(zhuǎn)為多行

SELECT unnest(string_to_array('4513,4564,555',',')) as a1;

-- array轉(zhuǎn)為行

SELECT unnest(ARRAY[1,2]);
SELECT * from unnest(ARRAY[1,2],ARRAY['foo','bar','baz']);

補(bǔ)充:PostgreSQL 行轉(zhuǎn)列、列轉(zhuǎn)行字符串函數(shù)、字符串分割函數(shù)

本文主要介紹PostgreSQL 的行轉(zhuǎn)列、列轉(zhuǎn)行以及字符串切割函數(shù),實(shí)際業(yè)務(wù)中對前兩個(gè)均有使用,并配有實(shí)際例子參考。

1、字符串列轉(zhuǎn)行

string_agg,某些地方也稱為字符串聚合操作。

如果需要按照一個(gè)字符串按照某個(gè)分割符拼接起來。

例如:

按照id把字符串按照指定分隔符拼接起來。實(shí)際業(yè)務(wù)中有什么需要這種字符串函數(shù)的呢?

-----------------------update 2020年1月16日17:05:59-----------------------

這里學(xué)習(xí)一個(gè)和系統(tǒng)表有關(guān)的查詢,用到了stragg ,用法之妙,自己體會。

 SELECT string_agg(att.attname,',' order by attrnums) as distribution
  FROM gp_distribution_policy a,pg_attribute att
  WHERE a.localoid ='sor.wpp_adefect_f_n'::regclass
  and a.localoid = att.attrelid
  and att.attnum = any(a.attrnums);
select attname,attnum from pg_attribute where attrelid='26625' order by attnum asc;

可以看到每個(gè)表上除了可見的列之外還有attrnums < 1的列。這幾個(gè)列用來實(shí)現(xiàn)mvcc、表明數(shù)據(jù)的物理位置、數(shù)據(jù)所處segID...

select string_agg(attname,',' order by attnum) from pg_attribute where attrelid='26625' and attnum >0;

將所有可見列查詢出來拼接sql,屢試不爽。

2、字符串行轉(zhuǎn)列

regexp_split_to_table(string, pattern [, flags ])

regexp_split_to_table(string, pattern [, flags ])。如果沒有與pattern的匹配,該函數(shù)返回string。

如果有至少有一個(gè)匹配,對每一個(gè)匹配它都返回從上一個(gè)匹配的末尾(或者串的開頭)到這次匹配開頭之間的文本。當(dāng)沒有更多匹配時(shí),它返回從上一次匹配的末尾到串末尾之間的文本。

flags參數(shù)是一個(gè)可選的文本串,它包含零個(gè)或更多單字母標(biāo)志,這些標(biāo)識可以改變該函數(shù)的行為。

這個(gè)標(biāo)識有很多,具體可查看http://postgres.cn/docs/9.6/functions-matching.html。不過該參數(shù)是可以省略的,我看到很少用這個(gè)flg的。

E是Posix樣式轉(zhuǎn)義字符串的前綴?,F(xiàn)代Postgres通常不需要這個(gè),此處的E可有可無。

--\\s+ 可匹配至少一個(gè)空白字符。

--\\s 表示空白字符。包括,空格,制表符等

--\s*

--*是貪婪模式,會盡可能匹配更多的字符

--而*?是非貪婪模式 會盡量匹配少的字符

SELECT foo FROM regexp_split_to_table('the quick brown fox jumps over the lazy dog', E'\\s') AS foo;
SELECT foo FROM regexp_split_to_table('the quick brown fox', E'\\s*?') AS foo;

關(guān)于正則表達(dá)式計(jì)劃以專題來學(xué)習(xí)

幾個(gè)元字符是需要記住的:

-----------------------update 2019年10月23日11:37:32-----------------------

imagePath字符串切割處理

如果想將如上的長列轉(zhuǎn)換為多行,可通過regexp_split_to_table()來處理。處理的結(jié)果如下。

sql形如:

select regexp_split_to_table(image_path,E'\\ ') pattern from (select distinct panel_id, 'Y:\\' || prod_id || '\\' || substring( glass_id, 0, 6 )|| '\\' || substring( glass_id, 0, 9 )|| '\\' || panel_id || '\\' || 'big' || ' '||
 'Y:\\' || prod_id || '\\' || substring( glass_id, 0, 6 )|| '\\' || substring( glass_id, 0, 9 )|| '\\' || panel_id || '\\' || 'small'|| ' '||
 'Y:\\' || prod_id || '\\' || substring( glass_id, 0, 6 )|| '\\' || substring( glass_id, 0, 9 )|| '\\' || panel_id || '\\' || 'IMAGE' as image_path 
from tabelName
where 1 = 1
and time>= '2019-09-09 00:00:00'
and time<= '2019-09-10 08:00:00'
)A

3、字符串分割符

split_part(str,',',1)
select split_part('A3332-22222222','-',1);  - > A3332 
select split_part('A3332-22222222','-',2);  - > 22222222

這個(gè)比較簡單一看便知道了。

相關(guān)文章

  • PostgreSQL 更新JSON,JSONB字段的操作

    PostgreSQL 更新JSON,JSONB字段的操作

    這篇文章主要介紹了PostgreSQL 更新JSON,JSONB字段的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • postgresql影子用戶實(shí)踐場景分析

    postgresql影子用戶實(shí)踐場景分析

    這篇文章主要介紹了postgresql影子用戶實(shí)踐場景分析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • PostgreSQL的日期時(shí)間差DATEDIFF實(shí)例詳解

    PostgreSQL的日期時(shí)間差DATEDIFF實(shí)例詳解

    PostgreSQL是一款簡介而又性能強(qiáng)大的數(shù)據(jù)庫應(yīng)用程序,其在日期時(shí)間數(shù)據(jù)方面所支持的功能也都非常給力,下面這篇文章主要給大家介紹了關(guān)于PostgreSQL的日期時(shí)間差DATEDIFF的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • PostgreSQL物理備份恢復(fù)之 pg_rman的用法說明

    PostgreSQL物理備份恢復(fù)之 pg_rman的用法說明

    這篇文章主要介紹了PostgreSQL物理備份恢復(fù)之 pg_rman的用法說明,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • PostgreSql 重建索引的操作

    PostgreSql 重建索引的操作

    這篇文章主要介紹了PostgreSql 重建索引的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 淺析postgresql 數(shù)據(jù)庫 TimescaleDB 修改分區(qū)時(shí)間范圍

    淺析postgresql 數(shù)據(jù)庫 TimescaleDB 修改分區(qū)時(shí)間范圍

    這篇文章主要介紹了淺析postgresql 數(shù)據(jù)庫 TimescaleDB 修改分區(qū)時(shí)間范圍,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • postgresql?常用SQL語句小結(jié)

    postgresql?常用SQL語句小結(jié)

    postgresql使用過程中常用到的一些sql語句,方便我們快速使用查詢一些操作特整理一下,方便需要的朋友
    2022-11-11
  • 如何解決PostgreSQL執(zhí)行語句長時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問題

    如何解決PostgreSQL執(zhí)行語句長時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行的問題

    某日開發(fā)同事上報(bào)一sql性能問題,一條查詢好似一直跑不出結(jié)果,查詢了n小時(shí),還未返回結(jié)果,這篇文章主要給大家介紹了關(guān)于如何解決PostgreSQL執(zhí)行語句長時(shí)間卡著不動(dòng)不報(bào)錯(cuò)也不執(zhí)行問題的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • postgresql 如何查看pg_wal目錄下xlog文件總大小

    postgresql 如何查看pg_wal目錄下xlog文件總大小

    這篇文章主要介紹了postgresql 如何查看pg_wal目錄下xlog文件總大小的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • PostgreSQL拼接字符串的方法

    PostgreSQL拼接字符串的方法

    使用concat()函數(shù)可以合并兩個(gè)或多個(gè)字符串,這篇文章主要介紹了PostgreSQL拼接字符串的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-05-05

最新評論

咸丰县| 博乐市| 清徐县| 怀仁县| 千阳县| 台中市| 唐海县| 隆子县| 恩平市| 调兵山市| 新河县| 保德县| 政和县| 崇义县| 汉源县| 贵阳市| 济源市| 罗城| 太康县| 渝中区| 炉霍县| 额济纳旗| 陇南市| 莫力| 嘉祥县| 定边县| 宜阳县| 遵义市| 绥德县| 蓝田县| 金沙县| 正安县| 永顺县| 白城市| 山东| 罗山县| 邻水| 鹤峰县| 宝清县| 西藏| 莒南县|