在我的新的業務工作,我遇到了在那裏的表進行編號一樣的Oracle SQL - 使用中的「與as'語句和許多表
table_1,
table_2,
table_3,
...
(最多20個)的數據庫結構
「UNION ALL」所有這些表具有相同的結構,如Id,Name,Surname。 現在我收到一個請求,顯示所有表中名稱爲「John」的Id。
With query_name (Id, Name, Surname) AS (
Select ID, Name, Surname FROM table_1
UNION ALL
Select ID, Name, Surname FROM table_2
UNION ALL
Select ID, Name, Surname FROM table_3
UNION ALL
--...
--all the other tables
) SELECT * FROM query_name WHERE Name = "John"
有沒有辦法縮小我的查詢或有此問題的另一個解決方案: 我的表,我需要選擇與此很長的查詢提出了量的鬥爭?我想到了一個循環,但我無法在「with as」語句中創建一個循環。
謝謝。
如果您需要經常這樣做,會不會創建視圖幫助? –
*經常更新x的物化視圖。 – xQbert
表名是否相似?或者我們如何捕獲你的表名來在循環/函數中調用它們? –