我是新來的sql,所以也許這是一個愚蠢的問題,但有沒有可能使用插入到With子句?或者有什麼共同的解決方法?我的意思是這樣的:Oracle SQL插入到與條款
With helper_table As (
Select * From dummy2
)
Insert Into dummy1 Values (Select t.a From helper_table t Where t.a = 'X');
Thx!
我的例子太虛擬了,所以我添加了一些擴展的代碼(thx爲迄今爲止的答案)。
INSERT
INTO dummy values (a,b) //more values
WITH helper_table AS
(
SELECT *
FROM dummy2
)
WITH helper_table2 AS //from more tables
(
SELECT *
FROM dummy3
)
SELECT t.value as a, t2.value as b
FROM helper_table t
join helper_table t2 on t.value = t2.value //some join
WHERE t.value = 'X' and t2.value = 'X' //other stuff
Thx,它工作正常! :) – user2424380 2011-05-04 15:48:26
臨時表可以完成同樣的事情嗎?例如,使用「create table #t ...」而不是「create table t ...」。我有一個相當複雜的查詢,我需要做的,其中的一部分需要不僅僅是立即查詢,這就是爲什麼我需要臨時表,但我不想永久寫任何東西。謝謝! – 2012-01-12 06:52:20
@MikeWilliamson自#t(臨時表),因爲您已經描述過它是SQL Server臨時表,這是一個oracle表。我可以證明上述語句可以在oracle全局臨時表中工作,但這是與SQL Server臨時表不同的。我只能推薦你嘗試一下,如果上面的語法在SQL Server中適用於普通表插入,我希望它的工作原理相同(注意「期待」並不意味着它會,我也沒有嘗試過!) – Harrison 2012-01-14 14:21:20