2013-12-09 58 views
3

剛剛發現,當您使用AS關鍵字別名子查詢Oracle不喜歡它:甲骨文AS關鍵字和子查詢

SELECT * FROM (SELECT * FROM products) AS p 

我需要讓我的SQL查詢,儘可能實現可移植性。在上述查詢中刪除AS關鍵字是否會影響任何其他RDBMS?

回答

4

爲SQL 99 ANSI模式是表可以有一個別名WITHOUTAS關鍵字的話,你可以拿出AS,它應該在每一個RDBMS工作。看到它在小提琴:

ISO/IEC 9075-2:1999,部分7.6 <表參考>,PA GE 232:

<table reference> ::= 
    <table primary> 
    | <joined table> 

<table primary> ::= 
    <table or query name> [ [ AS ] <correlation name> 
     [ <left paren> <derived column list> <right paren> ] ] 
    | <derived table> [ AS ] <correlation name> 
     [ <left paren> <derived column list> <right paren> ] 
    | <lateral derived table> [ AS ] <correlation name> 
     [ <left paren> <derived column list> <right paren> ] 
    | <collection derived table> [ AS ] <correlation name> 
     [ <left paren> <derived column list> <right paren> ] 
    | <only spec> 
     [ [ AS ] <correlation name> 
     [ <left paren> <derived column list> <right paren> ] ] 
    | <left paren> <joined table> <right paren> 

也確認工作:

  • 的MS Access(Jet)中
+0

我知道的MySQL需要一個別名,我的問題是關於實際使用情況的' AS'關鍵字。 –

+0

@MaxToro我已經更新了我的答案。 –

+0

謝謝。來自您所指標準的鏈接或報價將非常有價值。 –