我想将SQL查询转换为JSONiq查询,是否已经有一个实现,如果没有,我需要知道什么才能创建一个可以执行此操作的程序?SQL查询到JSONiq查询
1
A
回答
1
我不知道有一个实现,但是,它在技术上是可行和简单的。 JSONiq拥有90%的DNA来自XQuery,它本身也部分由参与SQL的人员设计。
从数据模型的角度看,一个表被映射到一个收集和表中的每一行被映射到一个平坦JSON对象,也就是说,所有字段都是原子值,如下所示:
{
"Name" : "Turing",
"First" : "Alan",
"Job" : "Inventor"
}
然后,通过将SELECT-FROM-WHERE查询转换为提供SQL功能超集的FLWOR表达式来完成映射。
例如:
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
到:
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
被称为from
和return
被称为select
,如果这些关键字写大写字母,JSONiq的语法将非常类似于SQL的:它是唯一的化妆品。
+0
感谢您的详细解答,我现在不能因为我的声誉而高举您的答案,但我会尽我所能, – user203788
相关问题
- 1. SQL查询到Django查询
- 2. SQL查询输出到SQL查询
- 3. SQL查询查询
- 4. 的Hibernate查询到SQL查询
- 5. SQL查询到LINQ查询语法
- 6. SQL Server查询到MySQL查询转换
- 7. SQL Server查询到Oracle查询转换
- 8. SQL查询到Laravel查询生成器
- 9. 转换SQL查询到MongoDB的查询
- 10. 基础 - SQL查询到LINQ查询
- 11. SQL Server查询到MySQL查询
- 12. SQL Server查询到LINQ查询
- 13. SQL自加入查询到LINQ查询
- 14. MySQL查询到SQL Server查询
- 15. SQL查询到休眠ORM查询
- 16. Coverting SQL查询到蜂巢查询
- 17. SQL查询与联接到Linq查询
- 18. SQL查询,子查询减子查询?
- 19. SQL查询到Linq到SQL
- 20. SQL查询到表
- 21. SQL - 查询到JSON
- 22. SQL查询到excel
- 23. LINQ到SQL查询
- 24. SQL查询到txt
- 25. sql查询到Linq
- 26. Activerecord查询到SQL
- 27. SQL查询到XML?
- 28. SQL查询 - 与子查询
- 29. SQL查询/子查询
- 30. 查询SQL查询除了
你对JSONIQ了解多少? – McNets
截至目前,我什么都不知道,我只知道它是XQuery的JSON文件 – user203788