我将如何在DB2中执行以下TSQL查询?我在根据查询结果创建临时表时遇到问题。
SELECT
COLUMN_1, COLUMN_2, COLUMN_3
INTO #TEMP_A
FROM TABLE_A
WHERE COLUMN_1 = 1 AND COLUMN_2 = 2
错误消息是:
最佳答案
您必须先在DB2中declare a temp table才能使用它。使用您正在运行的相同查询:
DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME AS (
SELECT COLUMN_1, COLUMN_2, COLUMN_3
FROM TABLE_A
) DEFINITION ONLY
或“手动”定义列:
DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME (
COLUMN_1 CHAR(10)
,COLUMN_2 TIMESTAMP
,COLUMN_3 INTEGER
)
然后填充它:
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
它不像SQL Server那样直接。
:)
即使它被称为“全局”临时表,它也仅在当前 session 中存在。注意,所有临时表都应以
SESSION
模式作为前缀。如果您不提供架构名称,则将隐含SESSION
。关于tsql - db2等同于tsql临时表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11422572/