好的,所以這個問題可能看起來有點不可思議,但如果有人知道是否有可能,這對開發我正在編寫的查詢會有很大的幫助。嵌入式選擇參考其父表的表格
這裏是什麼我目前的查詢做一些僞代碼:
SELECT TERMS.Field1
, TERMS.Field2
, DISC.Field3
FROM
(
SELECT Field1
,Field2
FROM
--various tables
WHERE
--various expressions
) TERMS,
(
SELECT Field3
FROM
--various tables
WHERE
--various expressions
) DISC
WHERE
--various expressions
我想是能夠嵌入選擇添加到最頂層的select語句即能指的是什麼從條款被退回,有點像這樣:
SELECT TERMS.Field1
, TERMS.Field2
, DISC.Field3
, (
SELECT Count(*)
FROM TERMS
WHERE
--various conditions
)
FROM
(
SELECT Field1
,Field2
FROM
--various tables
WHERE
--various expressions
) TERMS,
(
SELECT Field3
FROM
--various tables
WHERE
--various expressions
) DISC
WHERE
--various expressions
你可能會問爲什麼我不只是把直接條款一count(*)
,這是因爲有我想申請條款的輸出幾個不同的條件在這些選擇,我想能夠計數。如果有某種方式可以做到這一點,或者建議如何以更好的方式做到這一點,這將有助於。
謝謝,如果沒有清楚解釋,請讓我知道。
:Oracle數據庫12c中你可以使用'CROSS APPLY'或'橫向直列view',也簡單連接在很多情況下已經足夠 - 但它取決於在你的查詢中,很難說只看模糊的僞代碼。 – krokodilko
對不起,我會告訴你整個代碼,但我受我的公司政策約束不。結構完全相同,只是在where子句中有大量選定的字段和表達式。 部分原因我不想加入我的原始查詢中的TERMS,因爲TERMS是一個頻繁更新且相當大的代碼塊。如果有兩個維護可能會變得非常困難。 –