Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询到JSONiq查询_Sql_Json_Jsoniq - Fatal编程技术网

SQL查询到JSONiq查询

SQL查询到JSONiq查询,sql,json,jsoniq,Sql,Json,Jsoniq,我想将SQL查询转换为JSONiq查询,是否已经有了实现,如果没有,我需要知道什么才能创建一个可以实现这一点的程序?我不知道有什么实现,但是,它在技术上是可行和简单的。JSONiq 90%的DNA来自XQuery,XQuery本身也是由SQL相关人员设计的 从数据模型的角度来看,表映射到集合,表的每一行映射到平面JSON对象,即所有字段都是原子值,如下所示: { "Name" : "Turing", "First" : "Alan", "Job" : "Inventor" } 然后

我想将SQL查询转换为JSONiq查询,是否已经有了实现,如果没有,我需要知道什么才能创建一个可以实现这一点的程序?

我不知道有什么实现,但是,它在技术上是可行和简单的。JSONiq 90%的DNA来自XQuery,XQuery本身也是由SQL相关人员设计的

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

{
  "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)
}