【问题详细描述】
见图select.png中的数据,图中的PageSize属于数组内部的数据,现在只需要将PageSize查询出来。也就是使用sql进行查询嵌套数据的查询。
【检视意见】
1、已经解决的问题单,“解决结果”标记为“已解决”
2、“问题描述”中不要只是简单如图所示,尽量将图片的中问题描述出来
3、“解决方法”中不要简单的如图所示,用文字进行描述,图片中的语句可以
当作示例进行介绍;涉及到官方的文档中的知识点可以将链接贴出来
4、个人需要了解该查询命令为什么这样写,方便以后灵活应用
【解决办法】
1、直接查询
根据图select.png中的数据可以得出查询语句:db.exec(“select T.Details.$[0].PageSize from
S
N
A
P
S
H
O
T
C
L
a
s
T
w
h
e
r
e
T
.
N
a
m
e
=
"
m
y
.
m
y
"
g
r
o
u
p
b
y
T
.
N
a
m
e
"
)
。
查
询
结
果
可
见
图
s
o
l
v
e
1.
p
n
g
。
这
里
需
要
注
意
的
是
语
句
当
中
a
s
别
名
的
使
用
以
及
读
取
数
组
内
数
据
的
操
作
。
a
s
别
名
的
使
用
范
围
:
如
果
查
询
源
不
为
集
合
,
则
本
层
查
询
中
所
有
字
段
均
需
要
引
用
别
名
(
∗
除
外
)
,
例
如
:
s
e
l
e
c
t
T
.
a
,
T
.
b
f
r
o
m
(
s
e
l
e
c
t
∗
f
r
o
m
f
o
o
.
b
a
r
)
a
s
T
w
h
e
r
e
T
.
a
<
10
。
详
细
可
见
:
(
1
)
s
e
l
e
c
t
的
用
法
:
h
t
t
p
:
/
/
d
o
c
.
s
e
q
u
o
i
a
d
b
.
c
o
m
/
c
n
/
S
e
q
u
o
i
a
D
B
−
c
a
t
i
d
−
1432190960
−
e
d
i
t
i
o
n
i
d
−
0
。
(
2
)
a
s
的
用
法
:
h
t
t
p
:
/
/
d
o
c
.
s
e
q
u
o
i
a
d
b
.
c
o
m
/
c
n
/
i
n
d
e
x
−
c
a
t
i
d
−
1432190968
−
e
d
i
t
i
o
n
i
d
−
300
。
数
组
内
数
据
的
读
取
方
式
:
使
用
"
数
组
名
.
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。 数组内数据的读取方式:使用"数组名.
SNAPSHOTCLasTwhereT.Name="my.my"groupbyT.Name")。查询结果可见图solve1.png。这里需要注意的是语句当中as别名的使用以及读取数组内数据的操作。as别名的使用范围:如果查询源不为集合,则本层查询中所有字段均需要引用别名(∗除外),例如:selectT.a,T.bfrom(select∗fromfoo.bar)asTwhereT.a<10。详细可见:(1)select的用法:http://doc.sequoiadb.com/cn/SequoiaDB−catid−1432190960−editionid−0。(2)as的用法:http://doc.sequoiadb.com/cn/index−catid−1432190968−editionid−300。数组内数据的读取方式:使用"数组名.[index]”,index为下标。例如T.Details.
[
0
]
就
是
表
示
D
e
t
a
i
l
s
数
组
的
第
一
个
元
素
。
详
细
可
见
:
(
1
)
数
组
:
h
t
t
p
:
/
/
d
o
c
.
s
e
q
u
o
i
a
d
b
.
c
o
m
/
c
n
/
i
n
d
e
x
−
c
a
t
i
d
−
1519612291
−
e
d
i
t
i
o
n
i
d
−
300
。
(
2
)
[0]就是表示Details数组的第一个元素。 详细可见: (1)数组:http://doc.sequoiadb.com/cn/index-cat_id-1519612291-edition_id-300。 (2)
[0]就是表示Details数组的第一个元素。详细可见:(1)数组:http://doc.sequoiadb.com/cn/index−catid−1519612291−editionid−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。