午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > postgres array_to_string和array的用法講解

postgres array_to_string和array的用法講解

熱門標簽:移動外呼系統模擬題 電話機器人怎么換人工座席 400電話申請客服 濟南外呼網絡電話線路 廣州電銷機器人公司招聘 地圖標注要花多少錢 江蘇400電話辦理官方 電銷機器人能補救房產中介嗎 天津開發區地圖標注app

有三張表,分別如下:

select * from vehicle

select * from station

select * from vehicle_station

需求:

vehicle和station表示多對多的關系,需要把vehicle表對應的station表的第二字段查出來放到一個字段,如果對應多條,用逗號隔開放到一個字段。

解決方案:

SELECT v.*, array_to_string(ARRAY (SELECT station_name FROM station WHERE ID IN (SELECT station_id FROM vehicle_station WHERE vehicle_id = v. ID)),',') station_names FROM vehicle v

結果如下:

補充:Postgres array 數組類型詳細使用

德哥這篇文章寫的很不錯,在相關函數部分,尤其是 array_upper,array_lower 部分,有我自己的一些解釋。

ARRAY類型包含幾個重要的特征

維度

也就是幾維數組, 不管怎么賦值, ARRAY最終必須是個矩陣.

例1 :

ARRAY[1,2,3,4] 是一維數組,

ARRAY[[1,2],[3,4],[5,6]] 是二維數組

例2 :

ARRAY[['digoal','zhou'],['a','b',c']] 是錯誤的. 因為第二個維度中的第一個array有2個元素, 而第二個array有3個元素. 不是一個矩陣. 個數必須一致.

同時類型也必須一致

例3 :

ARRAY[['digoal','zhou'],[1,2]] 是錯誤的. 因為['digoal','zhou']是text[]類型, 而[1,2]是int[]類型.

元素

一維數組ARRAY[1,2,3,4] 中的4個元素分別是 1, 2, 3, 4. 這些int型的值.

二維數組ARRAY[[1,2],[3,4],[5,6]] 中的第一維度有3個元素是 ARRAY[1,2] , ARRAY[3,4] , ARRAY[5,6] 這些int[]類型的值. 第二個維度的第一個subscript的元素有兩個, 分別是1,2 . 第二個subscript 分別是3,4. 第三個subscript分別是5,6.

元素之間的分隔符, 除了box類型是分號;, 其他類型的分隔符都是逗號,.

擴展性

一維數組可以擴展, 二維數組無法擴展.

subscript

訪問ARRAY中的元素需要提供subscript值. 默認是從1開始編號. 除非賦值的時候強制指定subscript

例1 :

ARRAY[[1,2],[3,4],[5,6]] as a
a[1][1] = 1;
a[1][2] = 2;
a[2][1] = 3;
a[2][2] = 4;
a[3][1] = 5;
a[3][2] = 6;

a第一個[]表示第一維度, 里面的數字代表第一維度中要訪問的subscript,

a第二個[]表示第二維度, 里面的數字代表第二維度中要訪問的subscript,

另外也可以訪問ARRAY的slice.

例2 :

a[1:2][1:1] = {{1},{3}}

第一個[]中的1表示低位subscript, 2表示高位subscript值.

第二個[]中左邊的1表示低位subscript, 右邊的1表示高位subscript值.

a[2:3][1:2] = {{3,4},{5,6}}

分片的另一種寫法, 只要其中的一個維度用了分片寫法, 其他的維度如果沒有使用分片寫法, 默認視為高位

如a[2:3][2] 等同于 a[2:3][1:2]

接下來講解一下ARRAY類型的幾個常用函數 :

array_dims, 返回的是各個維度中的低位subscript和高位subscript, 如下 :

digoal=> select array_dims(ARRAY[[1,2,3,4,5],[6,7,8,9,10]]);
 array_dims 
---------+--
 [1:2][1:5]

array_length, 返回的是array中指定維度的長度或元素個數, 如下 :

digoal=> select array_length(ARRAY[[1,2,3,4,5],[6,7,8,9,10]], 1);
 array_length 
-------+------
      2
digoal=> select array_length(ARRAY[[1,2,3,4,5],[6,7,8,9,10]], 2);
 array_length 
--------+-----
      5

注意:array_lower 和 array_upper 返回值都是下標 ,默認從1開始的下標。

array_lower, 返回的是ARRAY中指定維度的低位subscript值, 如下 :

digoal=> select array_lower(ARRAY[[1,2,3,4,5],[6,7,8,9,10]], 2);
 array_lower 
--------+----
      1

下面就是強制指定subscript值了,

digoal=> select array_lower('[-3:-2]={1,2}'::int[], 1);
 array_lower 
---------+----
     -3

array_upper, 返回的是ARRAY中指定維度的高位subscript值, 如下 :

digoal=> select array_upper(ARRAY[[1,2,3,4,5],[6,7,8,9,10]], 2);
 array_upper 
--------+----
      5

下面就是強制指定subscript值了,

digoal=> select array_upper('[-3:-2]={1,2}'::int[], 1);
 array_upper 
--------+----
     -2

array_prepend, 用于在一維數組的前面插入元素, 如下

digoal=> select array_prepend('digoal', ARRAY['francs','david']);
   array_prepend   
-------------------+---
 {digoal,francs,david}
array_append, 用于在一維數組的后面插入元素, 如下
digoal=> select array_append(ARRAY['francs','david'], 'digoal');
   array_append   
---------------+-------
 {francs,david,digoal}

array_cat, 用于兩個相同維度的數組的連接, 或者一個n維數組和一個n+1維數組的連接, 如下

digoal=> select array_cat(ARRAY['francs'], ARRAY['digoal','david']);
    array_cat    
----------------+------
 {francs,digoal,david}
digoal=> select array_cat(ARRAY['francs'], ARRAY[['digoal']]);
   array_cat   
-----------------+---
 {{francs},{digoal}}

generate_subscripts, 用于按順序返回ARRAY的指定維度的subscript(s)值, 如下 :

正向返回第一維度的subscript值.

digoal=> select generate_subscripts(a, 1) from (select ARRAY['a','b','c','d'] as a) t;
 generate_subscripts 
---------------+-----
          1
          2
          3
          4

反向返回第一維度的subscript值.

digoal=> select generate_subscripts(a, 1, true) from (select ARRAY['a','b','c','d'] as a) t;
 generate_subscripts 
-----------------+--
          4
          3
          2
          1
digoal=> select generate_subscripts(a, 1) from (select '[-5:-1]={1,2,3,4,5}'::int[] as a) t;
 generate_subscripts 
---------------+-----
         -5
         -4
         -3
         -2
         -1
digoal=> select generate_subscripts(a, 1, true) from (select '[-5:-1]={1,2,3,4,5}'::int[] as a) t;
 generate_subscripts 
---------------+-----
         -1
         -2
         -3
         -4
         -5

多維數組的第二維度,

digoal=> select generate_subscripts(a, 2) from (select '[-5:-4][2:4]={{1,2,3},{4,5,6}}'::int[] as a) t;
 generate_subscripts 
---------------+-----
          2
          3
          4

接下來講解一下ARRAY類型的操作符

digoal=> select typname,oid from pg_type where typname='anyarray';
 typname | oid 
----------+------
 anyarray | 2277

操作符如下 :

digoal=> select oprname,oprleft,oprright,oprresult,oprcode,oprrest,oprjoin from pg_operator where oprleft=2277 or oprright=2277;
 oprname | oprleft | oprright | oprresult |  oprcode   |  oprrest  |   oprjoin   
---------+---------+----------+-----------+----------------+-------------+-----------------
 ||   |  2277 |   2283 |   2277 | array_append  | -      | -
 ||   |  2283 |   2277 |   2277 | array_prepend | -      | -
 ||   |  2277 |   2277 |   2277 | array_cat   | -      | -
 =    |  2277 |   2277 |    16 | array_eq    | eqsel    | eqjoinsel
 >   |  2277 |   2277 |    16 | array_ne    | neqsel   | neqjoinsel
     |  2277 |   2277 |    16 | array_lt    | scalarltsel | scalarltjoinsel
 >    |  2277 |   2277 |    16 | array_gt    | scalargtsel | scalargtjoinsel
 =   |  2277 |   2277 |    16 | array_le    | scalarltsel | scalarltjoinsel
 >=   |  2277 |   2277 |    16 | array_ge    | scalargtsel | scalargtjoinsel
    |  2277 |   2277 |    16 | arrayoverlap  | areasel   | areajoinsel
 @>   |  2277 |   2277 |    16 | arraycontains | contsel   | contjoinsel
 @   |  2277 |   2277 |    16 | arraycontained | contsel   | contjoinsel
(12 rows)

【注意】

- PostgreSQL中對ARRAY類型的維度沒有限制, 如int[]并不代表只能存儲一維數組, 其實可以存儲任意維度的ARRAY值.

- PostgreSQL中對ARRAY類型中元素的個數也沒有限制, 如int[10] , 不代表只能存儲10個元素.可以超出.

例如 :

digoal=> create table array_test (id int[2]);
CREATE TABLE
digoal=> insert into array_test values (ARRAY[[1,2,3,4,5],[6,7,8,9,10]]);
INSERT 0 1

這個例子中元素的個數和維度都超出了int[2]的限制,但是并沒有報錯,而且數據已經存儲進去了.

digoal=> select * from array_test ;
       id       
---------------------+------
 {{1,2,3,4,5},{6,7,8,9,10}}

手冊上的解釋如下 :

However, the current implementation ignores any supplied array size limits, i.e., the behavior is the same as for arrays of unspecified length.

The current implementation does not enforce the declared number of dimensions either. Arrays of a particular element type are all considered to be of the same type, regardless of size or number of dimensions. So, declaring the array size or number of dimensions in CREATE TABLE is simply documentation; it does not affect run-time behavior.

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • 解決PostgreSQL Array使用中的一些小問題
  • 對Postgresql中的json和array使用介紹
  • postgresql數據庫使用說明_實現時間范圍查詢
  • postgresql 實現將數組變為行
  • PostgreSQL 對數組的遍歷操作

標簽:昭通 辛集 溫州 寶雞 杭州 榆林 海西 濮陽

巨人網絡通訊聲明:本文標題《postgres array_to_string和array的用法講解》,本文關鍵詞  postgres,array,string,和,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《postgres array_to_string和array的用法講解》相關的同類信息!
  • 本頁收集關于postgres array_to_string和array的用法講解的相關信息資訊供網民參考!
  • 推薦文章
    91极品视觉盛宴| 污污污污污污www网站免费| 国产成人精品日本亚洲| 久久精品人人做人人爽电影| 国产精品区一区二区三含羞草| 久久国产精品-国产精品| 亚洲视频在线观看一区二区| 国产成人在线色| 色综合一区二区| 日韩欧美不卡一区| 在线视频精品一| 奇米777四色影视在线看| 国产一区二区免费看| 国产欧美韩日| 色窝窝无码一区二区三区成人网站 | 欧美日韩免费区域视频在线观看| 这里精品视频免费| 2019中文字幕在线| 欧美久久久久久一卡四| 国产一区二区视频网站| 欧美日韩中文字幕在线视频| 97婷婷大伊香蕉精品视频| 欧美日韩免费一区二区三区视频| 精品日韩欧美在线| 色窝窝无码一区二区三区| 日本污视频网站| 在线免费看av网站| 日本午夜在线观看| 久久久久久视频| 伊人网在线视频观看| av无码一区二区三区| 色综合手机在线| 9191在线视频| 国产又粗又猛又爽又黄的视频小说| 任我爽在线视频| 日本在线观看视频网站| 精品人妻一区二区三区免费看| 中文字幕一区二区三区最新| 奇米影视亚洲色图| 国内av一区二区| 偷拍女澡堂一区二区三区| 亚洲国产精品久| 国产一级免费av| 国产青青草视频| 久草在线在线精品观看| 久久久久国产精品麻豆ai换脸| proumb性欧美在线观看| 久久综合狠狠综合久久综合88| 一区二区三区四区av| 日韩三级电影网址| 九九久久久久久久久激情| 444亚洲人体| 波多野结衣 作品| 一区二区三区免费播放| 蜜桃av.com| 丰满人妻一区二区| 久久成人麻豆午夜电影| 精品国产91久久久久久老师| 91精品视频网| 91高清视频在线免费观看| 国产不卡一区二区在线观看| 手机看片福利盒子久久| 少妇aaaaa| 国产一区亚洲一区| 91麻豆精品国产综合久久久久久| 欧美激情亚洲精品| 一区二区三区视频| 男人av资源站| 国产精品白丝jk黑袜喷水| 欧美色图在线观看| 国产99久久精品一区二区 夜夜躁日日躁 | av网页在线观看| 视频污在线观看| 亚洲成人在线免费| 98精品国产高清在线xxxx天堂| 最新精品视频| 日韩av一二区| 先锋av资源站| 黑人精品xxx一区| 国产精品亚洲片夜色在线| www.超碰97.com| 亚洲xxx在线| 国产精品亚洲a| 喷水视频在线观看| 年下总裁被打光屁股sp| 日韩精品在线免费看| 成人午夜碰碰视频| 日韩在线视频中文字幕| 日韩高清在线播放| 久久午夜免费视频| 午夜久久久久久电影| 91精品一区二区| 91狠狠综合久久久| 中文字幕欧美日韩一区| 久久99国产精品久久久久久久久| 少妇一晚三次一区二区三区| 国产特黄一级片| 欧美成人激情免费网| 国产高清不卡无码视频| 精品国产伦一区二区三区| 日韩欧美国产一区在线观看| 一区二区不卡在线视频 午夜欧美不卡'| 免费看日韩毛片| 欧美丰满高潮xxxx喷水动漫| 手机成人av在线| 精品国产九九九| 亚洲天堂2020| 久久无码人妻一区二区三区| 岛国一区二区在线观看| 精品国产一区二区三区在线观看 | av免费观看网| 国产乱码精品1区2区3区| 欧美尺度大的性做爰视频| 黄色网址在线视频| 亚洲精品免费电影| 亚洲人一区二区| 天天干天天色天天| 欧美成人中文字幕| 青青青在线视频| 制服丝袜成人动漫| 欧洲xxxxx| 久久人人超碰| 欧美成人激情在线| 欧美成人aaa片一区国产精品| 欧美蜜桃一区二区三区| 日韩精品一区在线视频| 亚洲自拍偷拍图| 欧美日韩一区中文字幕| 国内自拍第二页| 99精品黄色片免费大全| 久久综合色一本| 人妻妺妺窝人体色www聚色窝| 97精品一区二区三区| 国产suv一区二区三区| 精品福利二区三区| 成人欧美在线观看| 天堂av资源网| 99re在线| 稀缺呦国内精品呦| 制服丝袜亚洲播放| 成人免费无遮挡无码黄漫视频| 欧美美女直播网站| 成人在线视频免费播放| 第一福利永久视频精品| 亚洲911精品成人18网站| 欧美三级在线播放| 18精品爽国产三级网站| 一区二区三区回区在观看免费视频| 91制片厂在线| 国产亚洲精品久久久久久牛牛| 国产a∨精品一区二区三区仙踪林| 日韩美一区二区三区| 男人午夜免费视频| 国产精品成人在线| 日韩中文字幕观看| 亚洲精品成人a8198a| 国产精品传媒在线| 欧美深夜福利视频| 欧美中文字幕一区| 男女黄床上色视频| 欧美激情亚洲激情| 亚洲 国产 日韩 欧美| 7777精品伊久久久大香线蕉语言 | 国产又粗又长又大的视频| 亚洲天堂久久久久久久| 亚洲国产精品久久久久婷蜜芽| 亚洲国产裸拍裸体视频在线观看乱了 | 免费在线不卡av| 99理论电影网| 亚洲嫩草精品久久| 免费在线观看a级片| 日韩视频免费在线观看| 日韩激情一二三区| 美女av免费观看| 精品国产伦一区二区三区免费 | 国产精品乱码一区二区三区软件 | 国模大尺度一区二区三区| caopor在线视频| 欧美疯狂性受xxxxx喷水图片| 99久久久无码国产精品不卡| 国产成人中文字幕| 国产精品第一页第二页第三页| 免费一级特黄3大片视频| 国产亚洲视频中文字幕视频| 蜜桃精品视频在线| 国模无码视频一区二区三区| 亚洲精品少妇网址| 国内精品久久久久影院薰衣草 | 国产精品成av人在线视午夜片| 综合精品久久久| 青青草手机在线视频| 乱一区二区三区在线播放| 91精品国产综合久久精品图片 | 另类欧美小说| 精品国产露脸精彩对白| 激情小说亚洲一区| 欧美老熟妇乱大交xxxxx| 97netav| 亚洲精品一区在线观看| 精品亚洲porn| 在线观看美女av| 鲁鲁狠狠狠7777一区二区| 天天色综合成人网| 国产综合在线播放| aaa毛片在线观看| 国产mv久久久| 欧美午夜电影在线| 亚洲精品国产精品乱码视色| 亚洲成人网上| 精品国产乱码久久久久久浪潮 | 精品无码人妻一区二区三区| 精品久久蜜桃| 亚洲人在线观看| 99精品视频在线播放观看| 可以免费在线观看的av| 成人久久久久久久久| 91精品视频免费| 91精品国产综合久久福利软件 | 色中色综合成人| 欧美老少做受xxxx高潮| 精品久久久国产| 国产精品一二三四| 亚洲国产精品一区二区久久hs| 成人午夜免费在线| 国产日韩av在线| 欧美sm极限捆绑bd| 成人高清视频在线观看| 最新中文字幕第一页| 免费黄色在线视频| 久久久精品三级| 亚洲精品一卡二卡三卡四卡| 日韩av免费一区| 日韩欧美国产麻豆| 欧美国产日韩在线观看| 日韩激情一区二区| 91porny九色| av手机在线播放| 日韩久久久久久久久久久| 欧美一区2区三区4区公司二百| 在线观看精品自拍私拍| 亚洲mv在线观看| 日本一区二区免费在线观看视频 | 日韩电影在线一区二区| 国产精品高潮呻吟AV无码| 熟女俱乐部一区二区| 粉色视频免费看| 天天爱天天做天天操| 国产亚洲欧美一区二区| 国产一区视频在线播放| 亚洲3p在线观看| 亚洲视频在线观看| 精品亚洲va在线va天堂资源站| 97国产一区二区| 久久夜色精品国产噜噜av| 天堂成人在线视频| 亚洲成a人片在线| 日本天堂在线视频| 久视频在线观看| 久久精品黄色片| 老司机精品福利在线观看| 午夜精品99久久免费| 久久99青青精品免费观看| 99re热这里只有精品视频| 91丝袜高跟美女视频| 久久66热re国产| 国产精品88av| 免费成人你懂的| 亚洲色偷精品一区二区三区| 日本免费新一区视频| 秋霞成人午夜伦在线观看| 老司机午夜福利视频| 色呦呦免费观看| 紧缚捆绑精品一区二区| 国产精品综合网| 国产亚洲精品精华液| 亚洲国产一区视频| 91精品中文字幕一区二区三区| 欧美另类一区二区三区| 91精品国产综合久久婷婷香蕉| 国产一区二区三区视频在线观看 | 免费观看黄网站| 97超碰免费在线观看| 天堂在线精品视频| 中文字幕精品视频在线| 国产精品23p| 亚欧在线观看视频| 国产美女久久久久| 一区二区三区中文字幕精品精品| 中文一区一区三区高中清不卡| 在线观看国产日韩| 久久精品视频网站| 91久热免费在线视频| 免费看成人午夜电影| 五月天激情图片| 日本少妇高潮喷水xxxxxxx| 性无码专区无码| 免费成人在线观看视频| 久久午夜免费电影| 91精品国产综合久久精品图片| 高清一区二区三区四区五区| 日韩电影免费观看高清完整| 久久在线中文字幕| 五月天精品视频| 在线免费观看av片| 91视视频在线观看入口直接观看www| 色www精品视频在线观看| 欧美日韩国产成人在线| 制服国产精品| 综合 欧美 亚洲日本| 午夜性色福利影院| 亚洲电影在线播放| 亚洲视频自拍偷拍| 精品国产乱码久久久久久郑州公司 | 麻豆精品一区二区三区视频| 成人国产精品免费网站| 欧美性猛交xxxxx水多| 国产999在线| 波多野结衣中文字幕在线播放| 国产高清免费av| 黑人狂躁日本妞一区二区三区 | 精品亚洲国产成人av制服丝袜 | 精品一区二区成人免费视频| 久久久久久天堂| 国产精品无遮挡| 91高潮在线观看| 黄色一级视频在线播放| a v视频在线观看| 久久精品视频免费| 日韩在线国产精品| 一本一道久久a久久精品综合| 久久黄色免费网站| 国产成a人亚洲| 欧美激情视频免费观看| 色播五月综合网| 久久久久免费| 中文字幕亚洲色图| 精品国产三级a∨在线| 国产成人无码精品久在线观看| 午夜精品久久一牛影视| 欧洲美女7788成人免费视频| 国产精品一区二区无码对白| k8久久久一区二区三区| 欧美精品videossex88| bl动漫在线观看| 国产拍揄自揄精品视频麻豆| 国产精品久久久久久久7电影| 性久久久久久久久久| 亚洲天堂av一区| 精品国产一区二区三区麻豆小说| 免费中文字幕在线观看| 黑人巨大精品欧美一区免费视频| 国产精品视频一区国模私拍 | 欧美日韩mp4| 国产a级片网站| 高h震动喷水双性1v1| 日韩精品资源二区在线| aaa一级黄色片| www.亚洲精品| 国产成人高清激情视频在线观看| av黄色免费在线观看| 在线视频一区二区三区| 男的插女的下面视频| 黄色永久免费网站| 波多野结衣中文字幕一区 | 久久久亚洲一区| 欧美亚洲另类在线| 久久99精品波多结衣一区| 亚洲国产黄色片| 日本黄色的视频| 中文字幕中文乱码欧美一区二区| 国产精品欧美日韩久久| 麻豆一区产品精品蜜桃的特点| 精品国产乱码久久久久久老虎| 农村末发育av片一区二区| 99视频超级精品| 亚洲一区二区三区涩| 粉嫩av一区二区三区| 国产欧美日韩中文| 亚洲国产剧情在线观看| 日韩中文字幕视频在线| 九九视频免费看| 在线精品国产欧美| 欧美成人三级视频| 在线观看精品自拍私拍| 欧美 日韩 精品| 欧美自拍视频在线| 一区二区精品视频在线观看| 不卡av在线网站| 91精品在线免费| 人妻中文字幕一区二区三区| 日本特黄一级片| 久久综合国产精品| 日韩精品中文字幕一区二区三区| 国产一区二区三区免费不卡| 免费网站在线高清观看| 亚洲国产精品传媒在线观看| 亚洲日韩中文字幕在线播放| 日本中文字幕片| 国产激情无套内精对白视频| 欧美成人国产一区二区| 亚洲精品无码久久久久久| 国产很黄免费观看久久| 欧美人在线视频| 国产一区二区三区四区五区六区| 91麻豆国产福利在线观看| 91在线免费看网站| 97免费观看视频| 欧美黑人巨大精品一区二区| 国产在线视频第一页| 91福利视频久久久久|