SQL查询到JSONiq查询
我想将SQL查询转换为JSONiq查询,是否已经有了实现,如果没有,我需要知道什么才能创建一个可以实现这一点的程序?我不知道有什么实现,但是,它在技术上是可行和简单的。JSONiq 90%的DNA来自XQuery,XQuery本身也是由SQL相关人员设计的 从数据模型的角度来看,表映射到集合,表的每一行映射到平面JSON对象,即所有字段都是原子值,如下所示:SQL查询到JSONiq查询,sql,json,jsoniq,Sql,Json,Jsoniq,我想将SQL查询转换为JSONiq查询,是否已经有了实现,如果没有,我需要知道什么才能创建一个可以实现这一点的程序?我不知道有什么实现,但是,它在技术上是可行和简单的。JSONiq 90%的DNA来自XQuery,XQuery本身也是由SQL相关人员设计的 从数据模型的角度来看,表映射到集合,表的每一行映射到平面JSON对象,即所有字段都是原子值,如下所示: { "Name" : "Turing", "First" : "Alan", "Job" : "Inventor" } 然后
{
"Name" : "Turing",
"First" : "Alan",
"Job" : "Inventor"
}
然后,通过将SELECT-FROM-WHERE查询转换为FLWOR表达式来完成映射,FLWOR表达式提供了SQL功能的超集
例如:
SELECT Name, First
FROM people
WHERE Job = "Inventor"
可以映射到:
for $person in collection("people")
where $person.job eq "Inventor"
return project($person, ("Name", "First"))
更复杂的查询也可以直接映射:
SELECT Name, COUNT(*)
FROM people
WHERE Job = "Inventor"
GROUP BY Name
HAVING COUNT(*) >= 2
致:
实际上,如果从调用了的,调用了的返回选择,并且如果这些关键字是大写的,那么JSONiq的语法将非常类似于SQL:它只是化妆品。你对JSONiq了解多少?到目前为止,我什么都不知道,我只知道这是XQuery for JSON Documents感谢您的详细回答,由于我的声誉,我现在无法对您的答案进行投票,但我会在可能的时候进行投票,
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)
}