Oracle-Sql-Developer

哪個工具可以使用 SQL 查詢結果集作為臨時表進行進一步分析和集合操作?

  • August 6, 2014

例如,假設我需要對以下 3 個結果集進行集合操作和連接。

我不想編寫複合查詢或使用臨時數據庫表。可以使用來自大型數據庫的分解數據集(如下所示)進行更快的數據分析。就像您可以藉助 GUI 在 toad 或 SQL 開發人員中加入兩個結果集一樣。

SQL 查詢 1 結果:(T1)

Col1 Col2 
A    1
B    2

查詢 2 結果:(T2)

Col3 Col4 
1    #
2    *

查詢 3 結果:(T3)

Col5   
1     
3    

所需的輸出是

Select T1.col1,T2.col4 
       from T1,T2 
       where T1.col2=T2.col3 
       and T1.col2 in (Select T3.col5 from T3)

(工具不必像上面那樣生成 SQL 來處理結果集,SQL 僅用於傳達邏輯。)

要求的結果:

Col1  Col4
1    #

在我看來,您可能想要兩件事中的一件來做您需要的事情。

  1. 可以是全域臨時表 (GTT),請參見此處此處在這裡查看 Oracle docco以獲得更乾燥的技術細節。

  2. 可能是 CTE - 公用表表達式(或 Oracle 稱之為子查詢分解) - 也稱為“WITH CLAUSE”。Howtos 在這里這裡——(再次,相當枯燥)Oracle docco 在這裡

您的問題的一個答案是,每個支持 Oracle 的工具都支持“使用 SQL 查詢結果集作為臨時表以進行進一步的分析和集合操作”——這種能力是 Oracle 固有的,可供所有人使用。

至於使用 GUI 執行此操作並在 GTT 或 CTE 之間拖放線 - 我不確定是否存在這樣的工具 - 但您可以嘗試將 GTT/CTE 創建為真正的混凝土表,然後執行 Drag’n ‘放下一點,當你最終得到你想要的結果時,你可以只使用 GUI 工俱生成的 SQL。最好學習 SQL 並能夠在沒有 GUI 的情況下做到這一點。

我同意臨時表(或 SQL Server 中的“雜湊表”#)會做你想做的事。

如果您想以圖形方式執行此操作,我可以推荐一款名為“Lavastorm Analytics BRE”的產品。有一個免費的桌面版本,它允許您即時查看數據集。它還可以做一些傳統 SQL 無法做到的事情,例如單個查詢中的內部和外部聯接。

引用自:https://dba.stackexchange.com/questions/73251