查询嵌套数组
如果一个表包含 STRUCT 的 ARRAY,则可展平 ARRAY 以查询 STRUCT 的字段。您也可以展平 STRUCT 值的 ARRAY 类型字段。

查询 ARRAY 中的 STRUCT 元素
以下示例将 UNNEST 与 CROSS JOIN 结合使用,以展平 STRUCT 的 ARRAY。

WITH races AS (SELECT "800M" AS race,[STRUCT("Rudisha" as name, [23.4, 26.3, 26.4, 26.1] as splits),STRUCT("Makhloufi" as name, [24.5, 25.4, 26.6, 26.1] as splits),STRUCT("Murphy" as name, [23.9, 26.0, 27.0, 26.0] as splits),STRUCT("Bosse" as name, [23.6, 26.2, 26.5, 27.1] as splits),STRUCT("Rotich" as name, [24.7, 25.6, 26.9, 26.4] as splits),STRUCT("Lewandowski" as name, [25.0, 25.7, 26.3, 27.2] as splits),STRUCT("Kipketer" as name, [23.2, 26.1, 27.3, 29.4] as splits),STRUCT("Berian" as name, [23.7, 26.1, 27.0, 29.3] as splits)]AS participants)
SELECTrace,participant
FROM races r
CROSS JOIN UNNEST(r.participants) as participant;
+------+---------------------------------------+
| race | participant                           |
+------+---------------------------------------+
| 800M | {Rudisha, [23.4, 26.3, 26.4, 26.1]}   |
| 800M | {Makhloufi, [24.5, 25.4, 26.6, 26.1]} |
| 800M | {Murphy, [23.9, 26, 27, 26]}          |
| 800M | {Bosse, [23.6, 26.2, 26.5, 27.1]}     |
| 800M | {Rotich, [24.7, 25.6, 26.9, 26.4]}    |
| 800M | {Lewandowski, [25, 25.7, 26.3, 27.2]} |
| 800M | {Kipketer, [23.2, 26.1, 27.3, 29.4]}  |
| 800M | {Berian, [23.7, 26.1, 27, 29.3]}      |
+------+---------------------------------------+

查询 STRUCT 中的 ARRAY 类型字段
您也可以从嵌套的重复字段中获取信息。例如,以下语句用于返回在 800 米赛跑中圈速最快的参赛选手。

WITH races AS (SELECT "800M" AS race,[STRUCT("Rudisha" as name, [23.4, 26.3, 26.4, 26.1] as splits),STRUCT("Makhloufi" as name, [24.5, 25.4, 26.6, 26.1] as splits),STRUCT("Murphy" as name, [23.9, 26.0, 27.0, 26.0] as splits),STRUCT("Bosse" as name, [23.6, 26.2, 26.5, 27.1] as splits),STRUCT("Rotich" as name, [24.7, 25.6, 26.9, 26.4] as splits),STRUCT("Lewandowski" as name, [25.0, 25.7, 26.3, 27.2] as splits),STRUCT("Kipketer" as name, [23.2, 26.1, 27.3, 29.4] as splits),STRUCT("Berian" as name, [23.7, 26.1, 27.0, 29.3] as splits)]AS participants)
SELECT
race,
(SELECT nameFROM UNNEST(participants),UNNEST(splits) AS durationORDER BY duration ASC LIMIT 1) AS runner_with_fastest_lap
FROM races;+------+-------------------------+
| race | runner_with_fastest_lap |
+------+-------------------------+
| 800M | Kipketer                |
+------+-------------------------+

sql 查询嵌套数组相关推荐

  1. mysql 查询返回数组吗_php sql查询如何返回数组

    php sql查询返回数组的方法:1.使用mysql_fetch_row函数:2.通过mysql_fetch_assoc函数:3.使用mysql_fetch_array函数:4.使用mysql_fet ...

  2. 数据库系列(5):SQL查询

    SQL (Structured Query Language:结构化查询语言) 是用来访问和操作数据库系统的,是一门ANSI 的标准计算机语言.目前最为广泛使用的数据库查询语言就是SQL了,尽管我么说 ...

  3. python vba sql,vba sql查询和输出 vba和python哪个实用

    在WPS的VBA中怎么使用SQL语句? 方法步骤如下: 1.在网上搜索并下载"wps的vba模块". 2.下载解压完成之后,双击"vba6chs"即可安装: 3 ...

  4. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询

    目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...

  5. oracle查数据存入数组,如何在SQL查询中使用Oracle关联数组

    ODP.Net公开了将关联数组作为参数从C#传递到Oracle存储过程的能力.除非您尝试在sql查询中使用该关联数组中包含的数据,否则它是一个很好的功能. 原因是它需要上下文切换 – SQL语句需要S ...

  6. 用SQL进行嵌套查询

    用SQL进行嵌套查询 在SELECT查询语句里可以嵌入SELECT查询语句,称为嵌套查询. 也可将内嵌的SELECT语句称为孒查询,子查询形成的结果又成为父查询的条件. 子查询可以嵌套多层,子查询操作 ...

  7. php查询MySQL结果转化为数组_PHP如何将SQL查询结果转为多维数组,并按查询行输出...

    在php中,SQL查询数据库得到的是多行多列的数据,如何将查询结果转为二维数组,我的目的是把多行查询结果按行输出,有没有什么方法,求详细代码示例查询结果示例:reserv_idnametyper... ...

  8. sql 子查询 嵌套查询_SQL子查询– SQL中的嵌套查询

    sql 子查询 嵌套查询 In the real world, there are times when we need a particular set of data but we don't h ...

  9. SQL查询(嵌套查询)

    嵌套查询又称子查询,有select子查询,where子查询,from子查询,exists子查询. 插入数据 #创建表及插入记录 CREATE TABLE class (cid int(11) NOT ...

最新文章

  1. 关于网站购买商品的一些感悟
  2. 渗透神器sqlmap的使用笔记
  3. 【Android工具】安卓魔力播放器moliplayer绿色无广告,手机DLNA播放器
  4. mysql 命令 例子_一个例子运用了所用mysql数据库操作命令
  5. 小白的算法初识课堂(part4)--快速排序
  6. R并行做大数据时间序列分析与bootstrap
  7. http请求中乱码------编码的转换
  8. 将 Hexo 部署到阿里云轻量服务器
  9. C/C++编程笔记:浪漫流星雨装b表白程序
  10. java培训老师面试题_千锋Java培训老师分享Java实习生面试题
  11. 软件工程基础课-个人项目-数独
  12. 记一次简单线上比赛--CTF(初级)
  13. TikTok Shop(英国小店)常见问题:退货?结算?回款?等。
  14. ActiveMQ学习 (一) JSM基本概念
  15. lms消噪声matlab,关于LMS去噪声的仿真
  16. ultraedit编辑器快速学习
  17. Dubbo的@Reference和@Service说明
  18. matplotlib的学习4-设置坐标轴
  19. 2021年这些高频面试知识点最后再发一次,大厂面经合集
  20. java实验八 内部类,匿名类

热门文章

  1. cortex-M3 的SVC、PendSV异常,与操作系统(ucos实时系统)
  2. 好好学python · 元组
  3. 同一局域网内不同网段文件共享设置
  4. 在2019年,如何成为更好的Node.js开发者?
  5. python基础补充内容
  6. Fedora 18 在线升级至 Fedora 19 命令步骤
  7. Spring利用JDBCTemplate实现批量插入和返回id
  8. 诸法无我-悉达多 乔达摩
  9. CentOS 6.5源码包安装MySQL
  10. CentOS通过DNSpod实现动态域名