0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PostgreSQLで取得結果の文字列に含まれるカンマ区切りの要素の数をカウントする方法【PostgreSQL】

Posted at

説明

方法 1: string_to_arrayarray_length を使用

string_to_array 関数を使って文字列をカンマで分割し、array_length 関数で配列の要素数をカウントします。

  • '10,20,30,40,50' はカンマ区切りの文字列です。
  • string_to_array('10,20,30,40,50', ',') は、カンマで区切られた文字列を配列に変換します。
  • array_length(..., 1) は、その配列の要素数を返します。
SELECT array_length(string_to_array('10,20,30,40,50', ','), 1) AS element_count;

 element_count 
---------------
             5

方法 2: regexp_split_to_arrayarray_length を使用

もし文字列の中に余分なスペースや特殊なパターンが含まれている場合、regexp_split_to_array 関数を使って正規表現で文字列を分割できます。

  • regexp_split_to_array('10,20,30, 40, 50', '\s*,\s*') では、カンマの前後にあるスペースを無視して要素を分割します。
SELECT array_length(string_to_array('10,20,30,40,50', ','), 1) AS element_count;

 element_count 
---------------
             5

方法 3: 単純なカンマの数を数える方法

要素数がカンマの数に1を加えた値である場合(要素がカンマで分割されている前提)、length 関数と replace 関数を使ってカウントできます。

  • length('10,20,30,40,50') は元の文字列の長さを取得します。
  • replace('10,20,30,40,50', ',', '') はカンマをすべて削除し、その後の長さを取得します。
  • 元の長さからカンマを削除した後の長さを引くと、カンマの数が分かります。そこに +1 することで、要素の数を取得します。
SELECT array_length(string_to_array('10,20,30,40,50', ','), 1) AS element_count;

 element_count 
---------------
             5
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?