• 数组类型


    1.示例

    select * from opt_visit ov;
    update opt_visit set label = '{抗菌药物, 抗菌药物输液, 国家基药}'::varchar[]
    
    select * from opt_visit where label @> '{国家基药, 抗菌药物}'::varchar[]

     2.数组构造函数

    (1).最基本的,简单的构造数组的方法

    语法:select array [2001,2002] as arr;

    运行结果:

    (2).使用array()来生成数组 (数组元素存在与一个查询返回的结果集中)

    语法:select array (select distinct label from opt_visit ov);

    运行结果:

    (3).将字符串转换成一个真正的数组

    语法:select '{省基药,国家基药}'::varchar[] as name;

    运行结果:

    (4).用固定分隔符分割的字符串转换为数组

    语法:select string_to_array('a.b.c.d','.') as arr; 

    运行结果:

    (5).将一组任何类型的数据转换为数组:array_agg

    语法:select array_agg(distinct label) from opt_visit ov;

    运行结果:

    (6).根据一维数组组建多维数组

    语法:select array_agg(f.t) from (values ('{zhangsan,lisi}'::text[]),('{23,35}'::text[])) as f(t); 

    运行结果:

      备注:被聚合的基础数组中元素类型必须相同,且基础数组的维度必须一样,即元素的个数()

    3.将数组元素展开为记录行

    (1).使用unnest函数将数组纵向展开

    语法:select unnest('{a,b,c,d}'::text[]) as name;

    运行结果:

    (2).多个可对其数组的展开效果

    语法:select unnest('{a,b,c,d}'::text[]),unnest('{1,2,3,4}'::text[]) as name;

    运行结果:

     4.数组的拆分与连接

    (1).取数组中的某一部分元素:根据下标,下标从1开始

    语法:select label[1:2] from opt_visit ov ;

    运行结果:

     (2).连接数组:||  连接的类型需与数组中的类型一致

    语法:select '{1,2,3,4}'::integer[] || 5 || 6;

    运行结果:

     select '{1,2,3,4}'::varchar[] || '{5}'::varchar[] || '{6}'::varchar[];

     5.引用数组中的元素

    (1).获取数组中的第一个元素与最后一个元素

    语法

    select label[1] as start,label[array_upper(label,1)] as end from opt_visit ov ;

    运行结果:

     6.数组包含性检查

    (1).&&:重叠判断运算符,如果两个数组由任何共同的元素则返回true,否则返回false

    select label from opt_visit ov where label && '{LabelA}'::varchar[];

    (2).@>:包含

    select '{1,2,3}'::varchar[] @> '{2,3}'::varchar[];

    (3).@<:被包含

    select '{1,2,3}'::varchar[] <@ '{2,3}'::varchar[];

  • 相关阅读:
    网站压力测试工具----webbench
    skin.xml
    krpano和react的结合展示
    swiper的相关用法
    js的hover实现方法。
    js的slice和split和splice和substring和substr的区别
    使用JSSDK分享页面
    微信jssdk分享功能开发
    点击复制
    JS的document.all函数使用 示例
  • 原文地址:https://www.cnblogs.com/pipile/p/13825207.html
Copyright © 2020-2023  润新知