sql - 空数组的 array_length() 和 cardinality() 返回数组大小之一
问题描述
我有一张像这样的桌子:
CREATE TABLE psdc_psr
(
id bigint not null,
available_region_code character varying(255)[],
is_valid bigint,
)
我想使用array_length()
,cardinality()
或available_region_code ='{}'
选择空available_region_code
列但它失败了,长度返回一。
为什么会发生这种情况以及如何解决这个问题。
解决方案
我不知道是什么原因导致了这个问题。也许就像 jjanes 在评论中说的那样,数组有一个非打印字符。
最后,我使用(CAST(ARRAY_TO_JSON(available_region_code) AS VARCHAR) IN ('[null]', '[""]'))
检查从问题区域的答案中学习的空数组(如何检查 Postgres 中的数组是否为空)。
推荐阅读
- javascript - 收到的请求总是空的
- ruby-on-rails - Puma 无法在 AWS Elastic Beanstalk 上的 Rails 5 上运行
- docker - 如何为 minikube 内的 pod 配置内部静态 ip
- angularjs - 如何将 ng-options comprehension_expression 传递给 AngularJS 组件?
- statistics - OLS 回归的问题 - 高度相似的 X 和截距系数
- apostrophe-cms - 如何在 ApostropheCMS 中设置网站图标
- scala - 查找在给定月份中花费最大金额的客户 ID
- python - 如何解密我知道它在 Python 中的模式的字符串?
- python - 如何在 Python 或 R 中绘制这种图表?
- python - numpy.array Boolean mix with int