2017-07-25 1 views
1

Je cherche à joindre deux tables dans une table temporaire, puis à utiliser la table temporaire dans une requête de sélection. Ceci est l'instruction select pour la table temp Je veux créer:SQL - Création d'une table temporaire jointe

select program, event 
from OMEGA.HP 
inner join POM.GT 
on program = substring(name,7,4) 
where LENGTH(name)= 25 

Quelle est la meilleure façon de créer une table temporaire pour ce qui précède?

Répondre

1
select program, event 
into #temp --------------------------------check here 
from OMEGA.HP 
inner join POM.GT 
on program = substring(name,7,4) 
where LENGTH(name)= 25 
0

Vous pouvez créer une table temporaire (et vous voudrez peut-être), mais si vous ne le savez pas déjà, je tiens à souligner que vous pouvez créer une table temporaire virtuelle dans une requête comme celui-ci

SELECT * 
FROM (
    select program, event 
    from OMEGA.HP 
    inner join POM.GT on program = substring(name,7,4) 
    where LENGTH(name)= 25 
) AS Virtual_table 

vous pouvez même joindre à une autre de ces tables comme ceci:

SELECT * 
FROM (
    select program, event 
    from OMEGA.HP 
    inner join POM.GT on program = substring(name,7,4) 
    where LENGTH(name)= 25 
) AS v_table74 
join (
    select program, event 
    from OMEGA.HP 
    inner join POM.GT on program = substring(name,2,5) 
    where LENGTH(name)= 25 
) as v_table25 on v_table74.program = v_table25.program 
0

Utilisez une expression de table commune (CTE):

with temptablename(program, event) as (
    select program, event 
    from OMEGA.HP 
    inner join POM.GT 
    on program = substring(name,7,4) 
    where LENGTH(name)= 25 
) 
select program, event 
from temptablename;