簡體   English   中英

Oracle SQL動態查詢

[英]Oracle SQL Dynamic Query

我的數據庫中有2個表:

在此處輸入圖片說明

在此處輸入圖片說明

我正在嘗試創建一個應作為變量參數“ id3 ”使用的查詢,例如-

Q(z0)應該產生

在此處輸入圖片說明

提前致謝!

Oracle查詢可以采用兩種形式的參數,一種是ANSI sql綁定[?的信息],另一種是Oracle樣式綁定[以:1的形式]。

因此,您的查詢可以是:

    Select * from table1 a, table2 b where a.id1 = b.id1 
and a.id2 = b.id2 and id3 = :1

如果我正確理解你的話

SELECT * FROM TAB1 I
         JOIN TAB2 II ON I.id1 = II.id1 and I.id2 = II.id2
WHERE I.id3 = 'z0' 

應該產生所需的結果,如果TAB2不完整,則可能需要“ LEFT OUTER JOIN”。

因此,假設已知“ A”,“ B”,“ C”,則查詢為

    With extra_cols as(
                    SELECT * FROM (
                                    SELECT * FROM Table2 WHERE id1 = (
                                                                      SELECT id1 FROM TABLE1 WHERE id3 = 'z0'
                                                                      ) 
                                                          AND  id2 = (
                                                                      SELECT id2 FROM TABLE1 WHERE id3 = 'z0'
                                                                      )
                                  )
                  PIVOT (STR(VALUE_1) for FIXED_COL in ('A','B','C')) 
                )
SELECT * from table1 left join extra_cols on table1.id1 = extra_cols.id1 AND table1.id2 = extra_cols.id2
WHERE TABLE1.id3 = 'z0'

可以從中提取“ A”,“ B”,“ C”字符串

SELECT FIXED_COL AS Names FROM Table2 WHERE Table2.id1=(SELECT id1 FROM TABLE1 WHERE id3 = 'z0') AND Table2.id2=(SELECT id2 FROM TABLE1 WHERE id3 = 'z0')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM