我可以在Oracle,Potsgresql和Sql Server上使用“some()”函数。但它是一个通用的SQL函数还是某些扩展的一部分?
答案 0 :(得分:4)
some
是ANY
的别名,它们都不是“函数”,而是条件(或运算符)。
它们与IN
(和ALL
)运算符有些相似,只是它们不在相关子查询的整个集合上运算,而只在“ some”上运算“(或”任何)行。
这是PostgreSQL手册中的相关部分:
http://www.postgresql.org/docs/current/static/functions-comparisons.html#AEN18025
以下是Oracle手册的相关部分:
http://docs.oracle.com/cd/E11882_01/server.112/e26088/conditions002.htm#CJAGAABC
这是SQL Server手册的相关部分:
http://msdn.microsoft.com/en-us/library/ms175064%28v=sql.90%29.aspx
(部分)引用ANSI SQL 2006标准:
<quantified comparison predicate> <quantified comparison predicate> ::= <row value predicand> <quantified comparison predicate part 2> <quantified comparison predicate part 2> ::= <comp op> <quantifier> <table subquery> <quantifier> ::= <all> | <some> <all> ::= ALL <some> ::= SOME | ANY
答案 1 :(得分:1)
使用运算符SOME()和ANY()的查询在MySQL中运行
答案 2 :(得分:1)
它是ISO / IEC 9075:1992的一部分,也称为ANSI SQL 92标准。参见“8.7&lt;量化比较谓词&gt;”在sql-1992 document。