zoukankan      html  css  js  c++  java
  • 数组类型

    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[];

  • 相关阅读:
    单例模式(上)单例常见的实现方式
    Netty(六)揭开 BootStrap 的神秘面纱
    Netty(五)Netty 高性能之道
    Netty(四)基于Netty 的简易版RPC
    Netty(三)基于Bio和Netty 的简易版Tomcat
    Netty(二)Netty 与 NIO 之前世今生
    java学习笔记
    Java使用笔记之对象比较
    React学习之受控和非受控组件
    SpringBoot学习之常用注解
  • 原文地址:https://www.cnblogs.com/pipile/p/13825207.html
Copyright © 2011-2022 走看看