2012-12-07 16 views
-3

我通過CREATE VIEW lalala AS SELECT * FROM lalalala創建視圖,我有兩種不同的看法。我怎樣才能交叉他們? view1 intersect view2不起作用。Oracle獲取視圖的交集

+3

「*不起作用*」不是一個有效的Oracle錯誤消息。相交肯定會在Oracle中起作用:http://sqlfiddle.com/#!4/c6ec8/1 –

回答

0

我想你可能會誤解一個視圖的目的。視圖是一種「派生」表,其數據依賴於(通常)一個或多個其他表中的數據。你仍然可以用SELECT作爲普通表格。因此,舉例來說,如果你有這樣的:

CREATE VIEW lalala AS SELECT * FROM lalalala; 

,那麼你會通過書面查詢這樣的觀點:

SELECT * FROM lalala WHERE ...; 

。 。 。這意味着這種觀點很可能無用;除特權和所有權等問題外,lalala相當於lalalala

要計算的兩種觀點的交匯,你可以這樣寫:

SELECT * FROM view1 
INTERSECT 
SELECT * FROM view2