Ключевое слово Oracle AS и подзапросы

Только что узнал, что Oracle не нравится, когда вы используете ключевое слово AS для псевдонима подзапроса:

SELECT * FROM (SELECT * FROM products) AS p

Мне нужно, чтобы мои SQL-запросы были максимально переносимыми. Повлияет ли удаление ключевого слова AS в приведенном выше запросе на любую другую СУБД?


person Max Toro    schedule 09.12.2013    source источник


Ответы (1)


Шаблон для SQL 99 ANSI заключается в том, что таблица может иметь псевдоним БЕЗ ключевого слова AS, поэтому вы можете удалить AS, и он должен работать на каждой СУБД. Смотрите на скрипке:

В ISO/IEC 9075-2:1999, раздел 7.6 ‹ ссылка на таблицу>, стр. 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-доступ (реактивный)
person Jorge Campos    schedule 09.12.2013
comment
Я знаю, что MySQL требует псевдоним, мой вопрос был об использовании ключевого слова AS. - person Max Toro; 10.12.2013
comment
Спасибо. Ссылка или цитата из стандарта, на который вы ссылаетесь, была бы очень ценной. - person Max Toro; 10.12.2013
comment
Хотя это ничего не значит с точки зрения соответствия СУБД. - person David Aldridge; 10.12.2013
comment
@MaxToro Я поместил ссылку на PDF-документ. Но, как сказал Дэвид Олдридж, «это ничего не значит с точки зрения СУБД». - person Jorge Campos; 10.12.2013
comment
@MaxToro Я знаю, что с момента этого вопроса прошло некоторое время, это решило вашу проблему? Если да, пожалуйста, рассмотрите возможность его принятия :) - person Jorge Campos; 17.06.2014