PostgresではANY
、SOME
述語式の右側で使用される場合の同義語です。たとえば、これらは同じです。
column = ANY (SELECT ...)
column = SOME (SELECT ...)
これはここに文書化されています:
http://www.postgresql.org/docs/9.1/static/functions-subquery.html#FUNCTIONS-SUBQUERY-ANY-SOME
私は、少なくともこれらのSQL DBMSを観察ANY
し、サポートする予定です。SOME
- DB2
- ダービー
- H2
- HSQLDB
- アングル
- MySQL
- オラクル
- Postgres
- SQLサーバー
- Sybase ASE
- Sybase SQL Anywhere
これらの方言のすべて(および他の方言も)が同義語として扱いANY
、SOME
同義語として扱われると安全に想定できますか、それとも一部のDBMSの2つのキーワードの間に微妙な違いがありますか?
私はこれをSQL92定義で見つけました:
<quantifier> ::= <all> | <some>
<all> ::= ALL
<some> ::= SOME | ANY
ANY
これは、とのセマンティクスについては何も言いませんSOME
。ドキュメントの後半では<some>
、2つのキーワードではなく、参照されるだけです。NULL
たとえば、少なくとも一部のDBMSでは、処理に微妙な違いがあるのではないかと思います。これが想定できるかどうかの明確なステートメントへの任意の/いくつかのポインタは大歓迎です。