oicq63236 发表于 2008-05-15 08:30

临时表问题?

我用select czy from ggczyb into temp abc

为什么接着用select * from abc提示没有abc这张表呢??

xxyyy 发表于 2008-05-15 08:46

如何接着查询的?你断开过连接么?
临时表在断开连接或者提交事务回滚事务后会自动消失。
临时表只对生成它的那个连接有效。

oicq63236 发表于 2008-05-15 09:06

呵呵,我确实断开过,刚才试成功了,再有一问就是:
select czy from ggczyb into temp abc union select khjl from khjldmb
怎么就不能插入到abc表中呢?
如何将ggczyb和khjldmb两张表中的两个字段都插到同一个临时表中呢?

ivhb 发表于 2008-05-15 12:13

select czy
from ggczyb
into temp abc
;
insert into abc
select khjl
from khjldmb
;

分两步吧

oicq63236 发表于 2008-05-15 16:01

回复 #4 ivhb 的帖子

谢谢ivhb兄,已经OK了,还有一问,如何在插入临时表的时候,多加一列,我的目的是为了记录它源于哪个表;
select czy,'table_ggczyb' from ggczyb into temp abc;
insert into abc select khjl,'table_khjldmb' from khjldmb;

但我在试上面的语句的时候,行不通???
提示

249:Virtual column must have explicit name.

[ 本帖最后由 oicq63236 于 2008-5-15 16:03 编辑 ]

xxyyy 发表于 2008-05-15 16:07

select czy from ggczyb
union
select khjl from khjldmb
into temp abc ;
这样重复的行被滤掉。


select czy from ggczyb
union all
select khjl from khjldmb
into temp abc ;
包含所有行

[ 本帖最后由 xxyyy 于 2008-5-15 16:08 编辑 ]

ivhb 发表于 2008-05-15 16:27

原帖由 oicq63236 于 2008-5-15 16:01 发表 http://bbs.chinaunix.net/images/common/back.gif
谢谢ivhb兄,已经OK了,还有一问,如何在插入临时表的时候,多加一列,我的目的是为了记录它源于哪个表;
select czy,'table_ggczyb' from ggczyb into temp abc;
insert into abc select khjl,'table_khjldm ...


select czy, cast ('table_ggczyb'as char (32)) as tabname from ggczyb into temp abc;

ivhb 发表于 2008-05-15 16:27

或者
select czy, 'table_ggczyb'::char (32) as tabname from ggczyb into temp abc;

oicq63236 发表于 2008-05-15 20:37

回复 #8 ivhb 的帖子

xxyyy兄的不行,我试过了,在SQL2000中可以,按IVHB兄的方法已经弄成了,再问最后一个问题:
select max10all,max10cz,max10lcr from ABC;
我的意思就是从ABC表中的CZY字段,来分别统计前十个最大的,max10cz和条件是从所有czy字段 and 字段czyb='C'中取前十个最大的,max10lrc的条件是从czy字段 and 字段lcr='L'中取前十个最大的,MAX10ALL就是从所有czy中取最大的前十个.

xxyyy 发表于 2008-05-16 09:41

啊,这是informix板块啊,你用的是sql2000吗?
页: [1] 2
查看完整版本: 临时表问题?