Thread: How to select rows for which column has empty array ?

How to select rows for which column has empty array ?

From
Arup Rakshit
Date:
I have a below table :

yelloday_development=# select id,workplace_ids,team_ids  from reporting_groups ;                                                                                                                                                                                     
 id | workplace_ids | team_ids 
----+---------------+----------
  2 | {}            | {}
  3 | {}            | {}
  1 | {}            | {}
  4 | {1}           | {1}
  5 | {2}           | {2,3,4}
(5 rows)

yelloday_development=# select id from reporting_groups where 2 = ANY (team_ids)
yelloday_development-# ;
 id 
----
  5
(1 row)

How would I select rows which has empty array for the field "team_ids" ?
 
Regards,
Arup Rakshit

Re: How to select rows for which column has empty array ?

From
David G Johnston
Date:
Arup Rakshit wrote
> I have a below table :
>
> yelloday_development=# select id,workplace_ids,team_ids  from
> reporting_groups ;                                                        
>                                                                          
>                                                   
>  id | workplace_ids | team_ids 
> ----+---------------+----------
>   2 | {}            | {}
>   3 | {}            | {}
>   1 | {}            | {}
>   4 | {1}           | {1}
>   5 | {2}           | {2,3,4}
> (5 rows)
>
> yelloday_development=# select id from reporting_groups where 2 = ANY
> (team_ids)
> yelloday_development-# ;
>  id 
> ----
>   5
> (1 row)
>
> How would I select rows which has empty array for the field "team_ids" ?

The generic way would be to checks its length:

WHERE array_length(team_ids, 1) = 0

you could also check for equality with the empty array:

WHERE teams_ids = array[]::integer[]

David J.




--
View this message in context:
http://postgresql.1045698.n5.nabble.com/How-to-select-rows-for-which-column-has-empty-array-tp5806338p5806343.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


Re: How to select rows for which column has empty array ?

From
Bosco Rama
Date:
On 06/06/14 07:30, Arup Rakshit wrote:
>
> How would I select rows which has empty array for the field "team_ids" ?

The shortest way is to test against an empty array constant:
  select id from reporting_groups where team_ids = '{}';

Or you can test using array_length().  Or you test against an empty
array[], cast appropriately.

HTH,
Bosco.