巨杉数据库Sequoiadb如何使用sql查询嵌套的数据类型

34次阅读

共计 1028 个字符,预计需要花费 3 分钟才能阅读完成。

【问题详细描述】
见图 select.png 中的数据,图中的 PageSize 属于数组内部的数据,现在只需要将 PageSize 查询出来。也就是使用 sql 进行查询嵌套数据的查询。

【检视意见】
1、已经解决的问题单,“解决结果”标记为“已解决”
2、“问题描述”中不要只是简单如图所示,尽量将图片的中问题描述出来
3、“解决方法”中不要简单的如图所示,用文字进行描述,图片中的语句可以

当作示例进行介绍;涉及到官方的文档中的知识点可以将链接贴出来
4、个人需要了解该查询命令为什么这样写,方便以后灵活应用

【解决办法】
1、直接查询
根据图 select.png 中的数据可以得出查询语句:db.exec(“select T.Details.$[0].PageSize from $SNAPSHOT_CL as T where T.Name = “my.my” group by T.Name “)。
查询结果可见图 solve1.png。
这里需要注意的是语句当中 as 别名的使用以及读取数组内数据的操作。
as 别名的使用范围:如果查询源不为集合,则本层查询中所有字段均需要引用别名( 除外),例如:select T.a , T.b from (select from foo.bar) as T where T.a < 10。
详细可见:
(1)select 的用法:http://doc.sequoiadb.com/cn/S…。
(2)as 的用法:http://doc.sequoiadb.com/cn/i…。
数组内数据的读取方式:使用 ” 数组名.$[index]”,index 为下标。例如 T.Details.$[0] 就是表示 Details 数组的第一个元素。
详细可见:
(1)数组:http://doc.sequoiadb.com/cn/i…。
(2)$+ 标识符的使用:http://doc.sequoiadb.com/cn/i…。
2、使用 split by 将数组拆分后查询
查询语句:db.exec(“select K.Details.PageSize as PageSize from (select * from $SNAPSHOT_CL as T where T.Name = “my.my” split by T.Details) as K “)。
查询结果可见图 solve2.png。
使用 split by 先将数组拆分,然后直接使用 ” 数组名. 要查询的字段名 ” 即可查询到相关信息。
详细可见:
(1)split by 的用法:http://doc.sequoiadb.com/cn/i…。

正文完
 0