怎么在PostgreSQL中实现一个子查询返回多行的功能

  介绍

怎么在PostgreSQL中实现一个子查询返回多行的功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

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

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

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

select  c.rain_value, c.ad_nm 得到;   (   select  *, json: json→t2.lon_lat  as  rain_value 得到actual_time_model_json  t1,   (SELECT  DISTINCT  lon  | |, & # 39; _ # 39;, | |, lat  as  lon_lat, ad_nm 得到grid_all_points_null) t2  where 部分=& # 39;0 & # 39;,以及t1.filename =, & # 39; Z_NWGD_C_BCCD_20180711022009_P_RFFC_SPCC-ER01_201807110800_02401.GRB2& # 39;   )c  where  c.rain_value  is  not 空

<强>补充:PostgreSQL的子查询相关的知识,存在,任何,所有

子查询

选择   film_id,   ,标题,   ,rental_rate   从   ,电影   在哪里   ,rental_rate 祝辞(   ,选择   ,,AVG  (rental_rate)   ,从   ,,,的电影   之前,);

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

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

选择   film_id,   ,标题   从   ,电影   在哪里   ,film_id 拷贝;(   ,选择   inventory.film_id。才能   ,从   ,,租赁   INNER 才能;JOIN  inventory 提醒inventory.inventory_id =rental.inventory_id   ,在哪里   ,,return_date 结构;& # 39;2005 - 05 - 29日& # 39;   以及才能& # 39;2005 - 05 - 30 & # 39;   ,);

存在操作符

在哪里子句的查询条件中,存在操作符,会在子查询有返回行时,返回正确的;不论返回几行。

因此,子查询中的查询字段仅写1就好;标准的写法:存在(选择1从资源条件)

选择   ,first_name、   ,last_name   从   ,客户   在哪里   ,EXISTS  (   ,选择   ,,1   ,从   ,才能付款   ,在哪里   ,,payment.customer_id =customer.customer_id   之前,);

不存在,与之相反,当子查询返回0行时,返回真正的

SELECT  first_name、   last_name才能   得到customer  c   WHERE  NOT 存在   (SELECT  1   ,得到payment  p   WHERE 才能;p.customer_id =c.customer_id   ,,,以及amount 的在,11,)   ORDER  BY  first_name、   ,,last_name;

当子查询返回零,会返回真,也就是返回所有行。

选择   ,first_name、   ,last_name   从   ,客户   在哪里   ,存在(,SELECT  NULL )   ORDER    ,first_name、   ,last_name;

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

表达式的值算子任何(子查询)

表达式一般为字段

操作符为祝辞,& lt;=& lt;祝辞,祝辞=& lt;=

任何可以与一些替换

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

SELECT 标题   得到电影   WHERE  length 祝辞=,任何(   ,SELECT  MAX (), length    得到电影   ,INNER  JOIN  film_category 使用(film_id)   ,GROUP  BY  category_id );

=任何等于操作符。

注意& lt;比;任何运营商与不不同。以下表达式:

x  & lt;祝辞,ANY  (a, b, c)

相当于

x  & lt;祝辞,a 或是x  & lt;祝辞,b 或是x  & lt;祝辞,c

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

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

选择   film_id,   ,标题,   ,长度   从   ,电影   在哪里   ,length 祝辞ALL  (   ,才能选择   ,,,圆(AVG (长度),2)   ,,   ,,,的电影   ,,GROUP 通过   ,,,评级   ,)   ORDER    ,长度;

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

怎么在PostgreSQL中实现一个子查询返回多行的功能