【问题详细描述】
见图select.png中的数据,图中的PageSize属于数组内部的数据,现在只需要将PageSize查询出来。也就是使用sql进行查询嵌套数据的查询。
【解决办法】
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/SequoiaDB-cat_id-1432190960-edition_id-0。
(2)as的用法:http://doc.sequoiadb.com/cn/index-cat_id-1432190968-edition_id-300。
数组内数据的读取方式:使用"数组名.$[index]",index为下标。例如T.Details.$[0]就是表示Details数组的第一个元素。
详细可见:
(1)数组:http://doc.sequoiadb.com/cn/index-cat_id-1519612291-edition_id-300。
(2)$+标识符的使用:http://doc.sequoiadb.com/cn/index-cat_id-1432190918-edition_id-208。
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/index-cat_id-1432190965-edition_id-300。