SQL查询使表而不是视图

时间:2018-11-09 07:50:15

标签: sql oracle

我对AQT(高级查询工具)中的视图有以下定义,我想将其转换为表。我该怎么办?

查看定义

SELECT TIDSPUNKT,
       QUEUE,
       ANTAL_KALD,
       ANTAL_BESVARET,
       CALLBACK,
       TABTE_KALD,
       BESVARET_25_SEK,
       GNS_VENT,
       INTERN_KALD 
FROM   KS_DRIFT.V_CTIR_SEAGATE_KS_SPECIFIC 
where  TIDSPUNKT>= '2018-04-02'
UNION ALL
SELECT TIDSPUNKT,
       QUEUE,
       ANTAL_KALD,
       ANTAL_BESVARET,
       CALLBACK,
       TABTE_KALD,
       BESVARET_25_SEK,
       GNS_VENT,
       INTERN_KALD 
FROM   PERO_NKM_KØ_OVERSIGT 
where  TIDSPUNKT between trunc(sysdate-756) and '2018-04-01'

2 个答案:

答案 0 :(得分:0)

您可以使用插入到如下所示的选择中:

首先用所需列创建一个表,然后执行以下操作

Insert into tablename(col1,col2,col2,col4,....)
     SELECT TIDSPUNKT,QUEUE,ANTAL_KALD,ANTAL_BESVARET,CALLBACK,TABTE_KALD,BESVARET_25_SEK,GNS_VENT,INTERN_KALD FROM KS_DRIFT.V_CTIR_SEAGATE_KS_SPECIFIC where TIDSPUNKT>= '2018-04-02'
     UNION ALL
     SELECT TIDSPUNKT,QUEUE,ANTAL_KALD,ANTAL_BESVARET,CALLBACK,TABTE_KALD,BESVARET_25_SEK,GNS_VENT,INTERN_KALD FROM PERO_NKM_KØ_OVERSIGT where TIDSPUNKT between trunc(sysdate-756) and '2018-04-01'

答案 1 :(得分:0)

CTAS( CREATE TABLE <table_name> AS )语句可能被使用:

CREATE TABLE T_PERO_NKM_KØ_OVERSIGT AS
SELECT TIDSPUNKT,
       QUEUE,
       ANTAL_KALD,
       ANTAL_BESVARET,
       CALLBACK,
       TABTE_KALD,
       BESVARET_25_SEK,
       GNS_VENT,
       INTERN_KALD
  FROM KS_DRIFT.V_CTIR_SEAGATE_KS_SPECIFIC
 where TIDSPUNKT >= '2018-04-02'
UNION ALL
SELECT TIDSPUNKT,
       QUEUE,
       ANTAL_KALD,
       ANTAL_BESVARET,
       CALLBACK,
       TABTE_KALD,
       BESVARET_25_SEK,
       GNS_VENT,
       INTERN_KALD
  FROM PERO_NKM_KØ_OVERSIGT
 where TIDSPUNKT between trunc(sysdate - 756) and '2018-04-01';