【PostgreSQL】文字の切り取り(Left、Right、Substring)
文字を左から○文字切り取る(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"