加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 将限制设置为array_agg()

发布时间:2020-12-12 06:36:57 所属栏目:MsSql教程 来源:网络整理
导读:我有以下Postgres查询: SELECT array_agg("Esns".id ) FROM public."Esns",public."PurchaSEOrderItems" WHERE "Esns"."PurchaSEOrderItemId" = "PurchaSEOrderItems".id AND "PurchaSEOrderItems"."GradeId"=2 LIMIT 2; 限制将影响行.我希望它将array_agg()
我有以下Postgres查询:
SELECT array_agg("Esns".id ) 
FROM public."Esns",public."PurchaSEOrderItems" 
WHERE 
    "Esns"."PurchaSEOrderItemId" = "PurchaSEOrderItems".id 
    AND "PurchaSEOrderItems"."GradeId"=2 
LIMIT 2;

限制将影响行.我希望它将array_agg()限制为2个项目.以下查询有效,但我在输出中使用引号中的每个条目:

SELECT array_agg ("temp")  
FROM (
    SELECT "Esns".id 
    FROM public."Esns",public."PurchaSEOrderItems" 
    WHERE 
        "Esns"."PurchaSEOrderItemId" = "PurchaSEOrderItems".id 
        AND "PurchaSEOrderItems"."GradeId"=2 
    LIMIT 4
) as "temp" ;

这给了我以下输出

{(13),(14),(15),(12)}

有任何想法吗?

解决方法

select id[1],id[2]
from (
    SELECT array_agg("Esns".id ) as id
    FROM public."Esns",public."PurchaSEOrderItems" 
    WHERE 
        "Esns"."PurchaSEOrderItemId" = "PurchaSEOrderItems".id 
        AND "PurchaSEOrderItems"."GradeId"=2 
) s

或者如果您希望输出为数组:

SELECT (array_agg("Esns".id ))[1:2] as id_array
FROM public."Esns",public."PurchaSEOrderItems" 
WHERE 
    "Esns"."PurchaSEOrderItemId" = "PurchaSEOrderItems".id 
    AND "PurchaSEOrderItems"."GradeId"=2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读