我正在尋找一種方法來模擬SP中Firebird中的「create table as select」。Firebird:模擬創建表爲?
我們經常使用的另一種產品這一說法,因爲它很容易使較小的,可轉位套,並提供在服務器端非常快的結果。
create temp table a select * from xxx where ...
create indexes on a ...
create temp table b select * from xxx where ...
create indexes on b ...
select * from a
union
select * from b
或者避免子查詢中的三個或更多級別。
select *
from a where id in (select id
from b
where ... and id in (select id from c where))
的「創建表的選擇」非常好COS它提供正確的字段類型和名稱,以便我不需要預先定義它們。
我可以模擬「創建表爲」火鳥用Delphi爲:
湊合着沒有行選擇,得到表字段類型,將它們轉換爲創建表的SQL,運行它,並作出「插入溫度表「+ selectql與行(不排序)。 沒關係。
但我可以在一個共同的存儲過程,而得到一個選擇SQL,並用結果創建一個新的臨時表中創建同樣的事情?
所以:我可以得到查詢結果的字段類型,我可以從他們創造領域的創造者SQL?
如果我只是問有沒有辦法與否(當時我必須指定列)。
您可以使用'select * from rdb $ relation_fields'來獲得列定義,其中rdb $ relation_name ='A''然後從那裏繼續。 – 2013-03-25 08:18:18
但我可以用連接字段(從....選擇a.x,b.y)做什麼? :-( – durumdara 2013-03-25 08:31:44
又是怎麼回事使用創建視圖.....作爲選擇? – pf1957 2013-03-25 08:40:48