我正在寻找一种方法来模拟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