七叶笔记 » 数据库 » PostgreSQL 实现子查询返回多行的案例

PostgreSQL 实现子查询返回多行的案例

补充:PostgreSQL 的子查询 相关的知识 ,exists,any,all

Subquery

有了子查询,在设定 需要查询表才能得到 查询条件时,就可以 直接 在一条语句中 写,不用分开多条写了,方便了许多。

子查询返回多条时,可以在 where 子句中 用 IN,来匹配查询条件。

EXISTS 操作符

在 where 子句的 查询条件中,exists 操作符,会在子查询有返回行时,返回true;不论返回几行。

因此,子查询中的查询字段仅写1就好;标准的写法:EXISTS (SELECT 1 FROM tbl WHERE condition)

NO EXISTS ,与之相反,当子查询返回0行时,返回true

当子查询返回 NULL,会返回true, 也就是返回所有行。

ANY

与任何子查询返回的 值 匹配就 返回 true

expresion operator ANY(subquery)

表达式一般为 字段

操作符为 >,<,=,<>,>=,<=

ANY 可以与 SOME 替换

子查询 返回的 必须是 一列,

The = ANY is equivalent to IN operator.

Note that the <> ANY operator is different from NOT IN. The following expression:

is equivalent to

ALL

所有子查询返回的值 匹配 则 返回 true

也就是 大于最大,小于最小

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。

相关文章