Являются ли ключевые слова SQL ANY и SOME синонимами во всех диалектах SQL?

В Postgres ANY и SOME являются синонимами при использовании в правой части предикатного выражения. Например, это одно и то же:

column = ANY (SELECT ...)
column = SOME (SELECT ...)

Это документировано здесь:

http://www.postgresql.org/docs/9.1/static/functions-subquery. html#FUNCTIONS-SUBQUERY-ANY-SOME

По моим наблюдениям, ANY и SOME поддерживаются по крайней мере этими СУБД SQL:

  • DB2
  • Derby
  • H2
  • HSQLDB
  • Ingres
  • MySQL
  • Oracle
  • Postgres
  • SQL Server
  • Sybase ASE
  • Sybase SQL Anywhere

Могу ли я с уверенностью предположить, что все эти диалекты (и другие, тоже) рассматривают ANY и SOME как синонимы или есть тонкая разница между этими двумя ключевыми словами в СУБД any/some?

Я нашел это в определении SQL92:

 ::=  | 
 ::= ALL
 ::= SOME | ANY

Здесь ничего не говорится о семантике ANY и SOME. Позже в документе упоминается только , а не два ключевых слова. Я подозреваю, что может быть тонкая разница в обработке NULL, например, по крайней мере, в некоторых СУБД. Любой/какой-нибудь указатель на четкое утверждение, можно ли это предполагать или нет, приветствуется.

11
задан onedaywhen 30 January 2012 в 12:56
поделиться