小程序制作平台网站设计平台 互联网品牌制作专家
关于A5客户收购GoogleAdsense带有搜索账户的相关事宜更多

软文发布平台资讯中心

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

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

  项目招商找A5 快速获取精准代理名单

作为一个表达式使用的子查询返回了多列:

在查询中,我们需要以第2条查询语句作为第一条查询语句的条件,但是第一条根据这个条件查询出来是多个数据,这时候又需要保留多个数据,运用子查询就会报错,

以下就为解决这种多对多关系查询,且没有关联关系的表的解决方案:

select c.rain_value,c.ad_nm from (select *, json::json->t2.lon_lat as rain_value from actual_time_model_json t1,(SELECT DISTINCT lon || '_' || lat as lon_lat,ad_nm from grid_all_points_null)t2 where section='0' and t1.filename = 'Z_NWGD_C_BCCD_20180711022009_P_RFFC_SPCC-ER01_201807110800_02401.GRB2')c where c.rain_value is not null

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

Subquery

SELECTfilm_id,title,rental_rateFROMfilmWHERErental_rate > ( SELECT AVG (rental_rate) FROM film);

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

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

SELECTfilm_id,titleFROMfilmWHEREfilm_id IN ( SELECT inventory.film_id FROM rental INNER JOIN inventory ON inventory.inventory_id = rental.inventory_id WHERE return_date BETWEEN '2005-05-29' AND '2005-05-30');

EXISTS 操作符

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

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

SELECTfirst_name,last_nameFROMcustomerWHEREEXISTS ( SELECT 1 FROM payment WHERE payment.customer_id = customer.customer_id);

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

SELECT first_name, last_nameFROM customer cWHERE NOT EXISTS(SELECT 1 FROM payment p WHERE p.customer_id = c.customer_id AND amount > 11 )ORDER BY first_name, last_name;

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

SELECTfirst_name,last_nameFROMcustomerWHEREEXISTS( SELECT NULL )ORDER BYfirst_name,last_name;

ANY

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

expresion operator ANY(subquery)

表达式一般为 字段

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

ANY 可以与 SOME 替换

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

SELECT titleFROM filmWHERE length >= ANY(SELECT MAX( length )FROM filmINNER JOIN film_category USING(film_id)GROUP BY category_id );

The = ANY is equivalent to IN operator.

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

1x <> ANY (a,b,c)

is equivalent to

1x <> a OR x <> b OR x <> c

ALL

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

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

SELECTfilm_id,title,lengthFROMfilmWHERElength > ALL ( SELECT ROUND(AVG (length),2) FROM film GROUP BY rating)ORDER BYlength;

文章来源:脚本之家

来源地址:https://www.jb51.net/article/204611.htm

尊敬的看官您对PostgreSQL实现子查询返回多行的案例有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。

上一篇: postgresql模糊匹配好用利器   返 回   下一篇:VisualStudioCode(VSCode)查询PostgreSQL拓展安装教程图解

相关资讯

小程序应用场景 | 小程序解决方案 | 小程序案例 | 小程序应功能 | 软文发布资源 | 网站设计

酒店预约解决方案
酒店预约小程序走红网络,也是传统转型的重要变化
详情
投票解决方案
强大功能,傻瓜式管理,有效防止作弊刷票
详情
新零售解决方案
小程序是现在新零售的新方式,深度结合线上线下
详情
预约服务解决方案
预约到店小程序通过用户在线预约到店等
详情
企业官网解决方案
企业展示小程序主要展示企业信息、产品案例等
详情
教育培训解决方案
主要展示教育机构的课程、可在线预约与购买课程
详情
推广解决方案
可以让企业通过推广模式全面展示自己的产品
详情
到店解决方案
到店服务解决方案,主要是面向实体餐饮门店
详情

我们的服务是否能满足您的需求?

如果不能,请联系我们或给我们留言,我们收到后会第一时间联系您!感谢您对我们的关注!

粤公网安备 44200002005005号