如何在PostgreSQL中获取具有特定数组大小的字段

时间:2019-10-08 12:45:26

标签: sql postgresql

我的表中有一个数组int []字段,只想获取那些int []字段大小> = 3和<= 5的字段。

我尝试过这样的事情:

SELECT cadinality(tt.numbers) >= 3, tt.customer_id 
FROM table_table tt 
LIMIT 50 

但是此返回带有选中标记的怪异列,但它应该返回字段tt.numbers(仅大小=> 3和<= 5)。

1 个答案:

答案 0 :(得分:1)

您的查询返回表中的所有行,但不是返回numbers列,而是返回一个布尔表达式,该表达式显示numbers列的基数是否大于2。

如果要限制行数,则需要一个WHERE子句:

SELECT tt.numbers, tt.customer_id 
FROM table_table tt 
WHERE cadinality(tt.numbers) between 3 and 5
LIMIT 50;
cadinality(tt.numbers) between 3 and 5

的简写
cadinality(tt.numbers) >= 3 and cadinality(tt.numbers) <= 5