我有一個查詢,我想用它來定義一個范圍作為另一個查詢的輸入。這個子查詢回傳兩個值,一個前序遍歷索引和一個子樹的大小。例如,
SELECT
ds.pre,
ds.sze
FROM
form_data_stage ds
WHERE
and ds.fdm_pre = 10
and ds.pre < 16 and (ds.pre ds.sze) > 16
此查詢將始終回傳單行,帶有預購索引和大小。
父查詢需要按照以下方式做一些事情:
SELECT
ds.pre,
ds.sze,
ds.fdm_pre
FROM
form_data_stage ds
WHERE
ds.pre > (pre /* i.e. pre value from the subquery */)
and ds.pre < ( (pre sze) /* i.e. (pre sze) from the same subquery */)
子查詢本質上定義了父查詢應該回傳的預值范圍。我不確定如何使用 SQL 來完成此操作。
uj5u.com熱心網友回復:
使用您的第一個查詢作為 CTE 并將其與您的第二個查詢中的表連接;像這樣:
with first_query as
(SELECT
ds.pre,
ds.sze
FROM
form_data_stage ds
WHERE
ds.fdm_pre = 10
and ds.pre < 16 and (ds.pre ds.sze) > 16
)
SELECT
ds.pre,
ds.sze,
ds.fdm_pre
FROM
form_data_stage ds join first_query a on ds.pre > a.pre
and ds.pre < a.pre ds.sze;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/349928.html
