确定逗号分隔字符串的长度

Determining the length of a comma separated string

假设我有一个列,其值是各种长度的逗号分隔字符串:

 locations            |  city  |  county |  state
 ---------------------+--------+---------+--------
 A, B, C              |        |         |     
 ---------------------+--------+---------+--------     
 A, B                 |        |         |
 ---------------------+--------+---------+--------
 A, B, C              |        |         |

因此,长度会有所不同。我想知道用逗号分隔的值的长度是多少。例如,'A, B, C' 的长度为 3,'A, B' 的长度为 2。如何使用 PostgreSQL 找到该长度?

您可以将字符串拆分为数组:

select cardinality(string_to_array('a,b,c', ','));

 cardinality
-------------
           3
(1 row)