SQLクエリをJSONiqクエリに変換したいのですが、これが既に実装されていますか?そうでない場合は、これを行うプログラムを作成するために何を知る必要がありますか?JSONiqクエリへのSQLクエリ
1
A
答えて
1
私は実装を認識していませんが、技術的に実現可能で簡単です。 JSONiqはXQueryに由来するDNAの90%を持っています。それ自体はSQLに関わる人々によって部分的に設計されています。データ・モデルの観点から
、テーブルはテーブルの集合とそれぞれの行にマッピングされ、フラットJSONオブジェクトにマッピングされ、すなわち、すべてのフィールドはそうのような原子値である:そして
{
"Name" : "Turing",
"First" : "Alan",
"Job" : "Inventor"
}
このマッピングは、SELECT-FROM-WHEREクエリをSQLの機能のスーパーセットを提供するFLWOR式に変換することによって行われます。例えば
:
より複雑なクエリはまた、非常にストレート前方にマッピングすることができ
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
へ:
SELECT Name, First
FROM people
WHERE Job = "Inventor"
がにマッピングすることができます
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クエリへのSolrクエリ
- 2. LINQクエリへのSQL Serverクエリ
- 3. TwigへのSQLクエリ
- 4. Android:CONTENT_URIへのSQLクエリ
- 5. データフレームへのSQLクエリ
- 6. LINQへのSQLクエリ
- 7. 3つのテーブルLaravelクエリへのSqlクエリ
- 8. SQLクエリからLINQクエリへの構文
- 9. SQLからMySQLへのクエリ
- 10. DB2クエリへのMS SQLビュー
- 11. クエリSQL Serverへの参加
- 12. Linq toエンティティへのSQLクエリ -
- 13. LINQへのVB.NET SQL Serverクエリ
- 14. あるSQLクエリから他のSQLクエリへのデータを使用
- 15. MS SQLへのSQLクエリ - パラメータ値
- 16. sql - クエリのクエリ
- 17. SQLクエリのSQLクエリPHP
- 18. SUMクエリのSQLクエリ
- 19. クエリ内のSQLクエリ
- 20. WqfのLinqクエリへのSqlクエリ変換Servive
- 21. PythonのテーブルへのSQLクエリの結果
- 22. OracleクエリからSQL Serverへのクエリ変換
- 23. LINQへのSQLクエリlinqでクエリを書く方法
- 24. sort_androidのgroup_byアイテムへのSqlクエリ
- 25. codeigniterアクティブレコードへのSQLクエリの変換
- 26. LINQオブジェクトへのSQLクエリの評価 - C#
- 27. csvファイルへのsqlクエリの実行
- 28. ハードコード列へのSQLクエリのグループ化
- 29. クエリへのアクセスの問題(SQL)
- 30. MS AccessのSQL Serverへのクエリ - でDISTINCTROW
JSONIQについて、あなたは何を知っていますか? – McNets
現在のところ、私は何も知らない、私はそれがJSON文書のXQueryであることを知っている。 – user203788