【PostgreSQL】文字の切り取り(Left、Right、Substring)

PostgreSQL構文

文字を左から○文字切り取る(Left関数)

文字列の左から○文字取得するには、Left関数を使用します。

切り取る文字数で指定するのは、全半角を考慮しない単純な文字数です。

--Left関数
Left( 切り取る文字列 , 左から切り取る文字数 )

--文字列'ABCDEFGHIJK'について、左から3文字切り取る
select * from left('ABCDEFGHIJK',3);  -- "ABC"

--文字列'あいうえおかきくけこ'について、左から5文字切り取る
select * from left('あいうえおかきくけこ',5);  -- "あいうえお"

 

 

文字を右から○文字切り取る(Right関数)

文字列の右から○文字取得するには、Right関数を使用します。

切り取る文字数で指定するのは、全半角を考慮しない単純な文字数です。

--Right関数
Right( 切り取る文字列 , 右から切り取る文字数 )

--文字列'ABCDEFGHIJK'について、右から3文字切り取る
select * from right('ABCDEFGHIJK',3);  -- "IJK"

--文字列'あいうえおかきくけこ'について、右から5文字切り取る
select * from right('あいうえおかきくけこ',5);  -- "かきくけこ"

 

 

文字を左のX文字目から○文字切り取る(Substring関数)

文字列から指定した部分を取得するには、substring関数を使用します。

切り取る位置、文字数で指定するのは、全半角を考慮しない単純な文字数です。

--Substring関数
--「切り取り始める位置」は、0からではなく1からカウント
Substring( 切り取る文字列 , 切り取り始める位置 , 切り取る文字数)

--文字列'ABCDEFGHIJK'について、3文字目から4文字切り取る
select * from substring('ABCDEFGHIJK',3,4);  --"CDEF"

--文字列'あいうえおかきくけこ'について、5文字目から3文字切り取る
select * from substring('あいうえおかきくけこ',5,3);  --"おかき"

--3つ目の引数『切り取る文字数』は、その文字列の文字数を超えてもエラーにはなりません
--次の例は3文字目から100文字取得としていますが、エラーにならず最後まで取得可能です
select * from substring('ABCDEFGHIJK',3,100);  --"CDEFGHIJK"

 

 

先頭から○文字削る、後ろから○文字削る

substringとlengthを使い、文字を削る例を紹介します。

-- 1.先頭からX文字を削る例
--'abcdefgh'の先頭3文字を削る(=4文字目以降すべて取得する)
select * from substring('abcdefgh',4,length('abcdefgh'));    --"defgh"

-- 2.後ろからX文字を削る例
--'abcdefgh'の後ろ3文字を削る
select * from substring('abcdefgh',1,length('abcdefgh')-3);  --"abcde"