首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从SQL查询到JSONiq查询

从SQL查询到JSONiq查询
EN

Stack Overflow用户
提问于 2016-12-11 17:56:43
回答 1查看 350关注 0票数 1

我想将一个SQL查询转换成一个JSONiq查询,是否已经有了一个实现,如果没有,我需要知道什么才能创建一个程序来完成这个任务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-23 11:19:25

但是,我不知道是否有实施办法,但在技术上是可行和直接的。JSONiq有90%的DNA来自于XQuery,这部分也是由参与XQuery的人设计的。

从数据模型的角度来看,表映射到集合,表的每一行映射到平面JSON对象,也就是说,所有字段都是原子值,如下所示:

代码语言:javascript
复制
{
  "Name" : "Turing",
  "First" : "Alan",
  "Job" : "Inventor"
}

然后,通过将SELECT-WHERE查询转换为FLWOR表达式来完成映射,FLWOR表达式提供了SQL功能的超集。

例如:

代码语言:javascript
复制
SELECT Name, First
FROM people
WHERE Job = "Inventor"

可以映射到:

代码语言:javascript
复制
for $person in collection("people")
where $person.job eq "Inventor"
return project($person, ("Name", "First"))

更复杂的查询也可以非常直接地向前映射:

代码语言:javascript
复制
SELECT Name, COUNT(*)
FROM people
WHERE Job = "Inventor"
GROUP BY Name
HAVING COUNT(*) >= 2

至:

代码语言:javascript
复制
for $person in collection("people")
where $person.job eq "Inventor"
group by $name := $person.name
where count($person) ge 2
return {
  name: $name,
  count: count($person)
}

实际上,如果for被称为fromreturn被称为select,并且如果这些关键字是大写的,那么JSONiq的语法将非常类似于SQL:它只是化妆品。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41089242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档