我需要從DB2 v8中的CTE(公用表表達式)中進行選擇,並將結果插入到表中。 爲V8的相關文件是很難第一眼就明白,但對V9有一個明顯的例子(http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.apsg/db2z_createcte.htm):帶有CTE的DB2 v8插入
INSERT INTO vital_mgr (mgrno)
WITH VITALDEPT (deptno, se_count) AS
(
SELECT deptno, count(*)
FROM DSN8910.EMP
WHERE job = 'senior engineer'
GROUP BY deptno
)
SELECT d.manager
FROM DSN8910.DEPT d
, VITALDEPT s
WHERE d.deptno = s.deptno
AND s.se_count > (
SELECT AVG(se_count)
FROM VITALDEPT
);
它不會在V8的工作,雖然。 它應該如何寫入V8?
在v8中支持CTE,並且[v8 INSERT文檔](http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb .doc/admin/r0000970.htm)與您發佈的查詢的格式相匹配。你沒有提到錯誤信息 - 你確定你的CTE和後續的SELECT實際上是否返回任何數據? – 2010-09-10 02:15:16
您在哪個平臺上運行DB2? – 2010-09-10 04:08:20
對不起,我沒有看到你的評論,認爲沒有答案。 原來,我們不打算支持v8,但如果內存服務,我得出的結論是INSERT在v8中並沒有與CTE一起工作。 – vaso 2010-12-14 00:43:01