db2 equivalent of tsql temp table

前端 未结 3 762
离开以前
离开以前 2020-12-10 17:36

How would I do the following TSQL query in DB2? I\'m having problems creating a temp table based on the results from a query.

SELECT 
COLUMN_1, COLUMN_2, CO         


        
3条回答
  •  萌比男神i
    2020-12-10 17:58

    You have to declare a temp table in DB2 before you can use it. Either with the same query you are running:

    DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME AS (
        SELECT COLUMN_1, COLUMN_2, COLUMN_3
        FROM TABLE_A
    ) DEFINITION ONLY
    

    Or "manually" define the columns:

    DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME (
         COLUMN_1 CHAR(10)
        ,COLUMN_2 TIMESTAMP
        ,COLUMN_3 INTEGER
    ) 
    

    Then populate it:

    INSERT INTO SESSION.YOUR_TEMP_TABLE_NAME
    SELECT COLUMN_1, COLUMN_2, COLUMN_3
    FROM TABLE_A
    WHERE COLUMN_1 = 1
      AND COLUMN_2 = 2
    

    It's not quite as straight-forward as in SQL Server. :)

    And even though it's called a "global" temporary table, it only exists for the current session. Note that all temp tables should be prefixed with the SESSION schema. If you do not provide a schema name, then SESSION will be implied.

提交回复
热议问题