关键是怎么把结果作为临时表呢,语法是怎样的?比方有A B C三个表,SELECT * FROM A B WHERE A.id = B.id
发布网友
发布时间:2022-08-15 18:41
我来回答
共3个回答
热心网友
时间:2023-09-18 12:40
如果是sqlserver,要把结果作为临时表,只要在
select * into #D
from A,B
where A.id=B.id
即可,就是说,在正常表名字前面加#号。这样的临时表在用户断开连接后会消失。还有一种是在表前面加##,这种是全局临时表,所有用户都断开使用后表会消失。追问我的问题是把两个表的查询结果与第三个表查询,提问的时候前面的忘写了。如果按照你的意思
SELECT * into #D FROM A, B WHERE A.id = B.id ,但是接下来与C表进行查询呢?
追答写一个过程,接下来可以直接select * fron #D 即可 , 当存在#D表之后,可以作为常规表来使用。只是该表在用户断开本次连接之后消失。
热心网友
时间:2023-09-18 12:40
可以创建一个表,比如表D
select * into D
from A,B
where A.id=B.id追问我的问题是把两个表的查询结果与第三个表查询,提问的时候前面的忘写了。如果按照你的意思
SELECT * into #D FROM A, B WHERE A.id = B.id ,但是接下来与C表进行查询呢?比方我要临时表的D.id与C.id进行匹配。
热心网友
时间:2023-09-18 12:41
看你使用场景,不管是SQL Server还是Oracle都可以创建会话级别的临时表,如果只是临时查询使用,那么最简单就是直接创建一个表,用完就删除好了
create table XXXtemp as (SELECT * FROM A B WHERE A.id = B.id )追问我的问题是把两个表的查询结果与第三个表查询,提问的时候前面的忘写了,不好意思。