1つの列に0以上の値を含むJSON配列が含まれているSQLiteテーブルがあります。このような何か:JSON1を使用する再帰SQLite CTE json_each
id|values
0 |[1,2,3]
1 |[]
2 |[2,3,4]
3 |[2]
私が何をしたいのかは、その列の配列内に含まれるすべての個別値のリストにこれを「展開」です。起動する
、Iは、行からの値のテーブルを抽出するJSON1拡張のjson_each関数を使用しています:
私はテーブル内の行を選択する(上記、2)IDを変化させることができるSELECT
value
FROM
json_each(
(
SELECT
values
FROM
my_table
WHERE
id == 2
)
)
。
ここでは、これを再帰的なCTEにラップして、テーブル全体の各行に適用して結果を結合できるようにしようとしています。
WITH RECURSIVE result AS (
SELECT null
UNION ALL
SELECT
value
FROM
json_each(
(
SELECT
values
FROM
my_table
WHERE
id == 2
)
)
)
SELECT * FROM result;
を私はもともとID変数を作成し、最初の例と同様に(それをインクリメントすることを計画していた次のステップとして次のように私は(約)上記の結果を複製最初のステップとしてdocumentationしかし、それを働かせることができませんでした。
私はドキュメントの他の例を見てきましたが、それらは幾分複雑で、私はそれらをどのように見分けることができませんでした
誰かがこの問題を解決する方法の簡単な例を提供することはできますか問題)と再帰的なCTEの関係
もちろん、私の目標は、より良い方法があるかどうかを聞いてとてもイムも幸せのCTEの有無にかかわらず、問題を解決することである...
、はるかに優れたソリューションを提供します。どうもありがとう – gary