首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Postgres -如何检查空数组

Postgres -如何检查空数组
EN

Stack Overflow用户
提问于 2009-04-10 13:49:30
回答 4查看 60.9K关注 0票数 72

我正在使用Postgres,并尝试编写如下查询:

代码语言:javascript
运行
复制
select count(*) from table where datasets = ARRAY[]

也就是说,我想知道某一列有多少行有空数组,但postgres不喜欢这样:

代码语言:javascript
运行
复制
select count(*) from super_eds where datasets = ARRAY[];
ERROR:  syntax error at or near "]"
LINE 1: select count(*) from super_eds where datasets = ARRAY[];
                                                             ^
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-04-10 13:56:33

语法应为:

代码语言:javascript
运行
复制
SELECT
     COUNT(*)
FROM
     table
WHERE
     datasets = '{}'

您可以使用引号加大括号来显示数组文字。

票数 103
EN

Stack Overflow用户

发布于 2009-04-10 15:17:11

您可以利用空数组上的array_upper和array_lower函数返回null这一事实,因此您可以:

代码语言:javascript
运行
复制
select count(*) from table where array_upper(datasets, 1) is null;
票数 17
EN

Stack Overflow用户

发布于 2020-05-08 01:04:58

如果你像我一样在2020年找到这个问题,正确答案是

代码语言:javascript
运行
复制
select count(*) from table where cardinality(datasets) = 0

cardinality是在PostgreSQL 9.4中添加的,大约是2015年

https://www.postgresql.org/docs/9.4/functions-array.html

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/737669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档