使用 WITH Clause 的方式,參考文章 https://www.sqlite.org/lang_with.html
透過 CTE : Common Table Expressions ,它可以把 SELECT 後整個 Table 儲存起來,共後續 SQL 語法來使用.而 Recursive Common Table Expressions 可以透過多次 SELECT 的資料組合起來共 後續 SQL 語法來使用.
Recursive Common Table Expressions 程式結構如下:
cte-table-name AS ( initial-select UNION ALL recursive-select
這邊的 x 會一直增加,並指定 x 小於 10 就停止.
WITH RECURSIVE cnt(x) AS ( VALUES(1) UNION ALL SELECT x+1 FROM cnt WHERE x<10 ) SELECT x FROM cnt;
執行結果
1 2 3 4 5 6 7 8 9 10
這邊的停止條件為 Limit 10 ,最多就 10 筆資料之後就停止了.
WITH RECURSIVE cnt(x) AS ( SELECT 1 UNION ALL SELECT x+1 FROM cnt LIMIT 10 ) SELECT x FROM cnt;
執行結果
1 2 3 4 5 6 7 8 9 10
多個欄位的範例.
WITH RECURSIVE cnt(x , y) AS ( SELECT 1 , 1 UNION ALL SELECT x+1 , y+1 FROM cnt WHERE x<10 ) SELECT x , y FROM cnt;
執行結果
1|1 2|2 3|3 4|4 5|5 6|6 7|7 8|8 9|9 10|10
沒有解決問題,試試搜尋本站其他內容