文字列操作をまとめました【PostgreSQL】
【頻出】文字列操作のまとめ
文字列操作のうち、特に頻出のものをまとめました。
1.文字列の結合
select 'abc' || 'EFG'; --'abcEFG'
select null || 'abc'; --null(nullと結合するとnullになるため注意)
ここで詳しく説明しています → 文字列の結合、nullの結合
2.文字数の取得
select length('abcdefgあいう'); --10(文字)
ここで詳しく説明しています → 改行コードで結合、置換する
3.文字列のバイト数を取得
select octet_length('abcde'); --5 (半角=1、全角=3バイト)
select octet_length('アイウえお'); --15(半角カタカナも1文字3バイトで計算)
ここで詳しく説明しています → 文字数のカウント(length)、バイト数を取得する
4.文字列の一部分を取得
select substring('abcdefghijk',2,3); -- 'bcd' (2文字目から3文字取得する)
select left('abcdefghijk',5); -- 'abcde'(左から5文字取得する)
select right('abcdefghijk',5); -- 'ghijk'(右から5文字取得する)
ここで詳しく説明しています → 文字の切り取り(Left、Right、Substring)
5.検索文字位置の取得
select strpos('abcdefg','ef'); --5(=5文字目にある)
select strpos(upper('abcdefg'),upper('Cde')); --3(大文字小文字の区別なし)
select strpos('abcdefg','xyz'); --0(見つからない場合0となる)
ここで詳しく説明しています → 検索文字位置の取得(strpos)
6.スペース除去
select * from trim(' abc '); --'abc' (前後のスペースを除去)
select * from trim(' a b c '); --'a b c'(文字間のスペースは除去されない)
ここで詳しく説明しています → 全角半角スペースを除去する(trim)
7.大文字・小文字の変換
select upper('abc'); --ABC(大文字へ変換)
select lower('EFG'); --efg(小文字へ変換)
ここで詳しく説明しています ↓
8.置換
select replace('everywhere','e','E'); --'EvErywhErE'(e ⇒ Eへ置換)
ここで詳しく説明しています → 文字を置換する、複数置換する(replace、translate)
9.前0埋め
select lpad('12345',10,'0'); --'0000012345'(10桁前0埋め)
select lpad(cast(12345 as character varying), 8 , '0'); --"00012345"(数値をcast)
ここで詳しく説明しています → 前0埋め、後ろ0埋め(lpad、rpad)
10.後ろスペース埋め
select rpad('12345',10,' '); --'12345 '(後ろスペース埋め10桁)
ここで詳しく説明しています → 前0埋め、後ろ0埋め(lpad、rpad)
11.Nullの場合の処理
select * From COALESCE(null , 'abc'); --'abc'(一つ目の引数がnullなら二つ目の引数を返す)
ここで詳しく説明しています → Nullの時に別の値に置き換える
こちらも → nullif関数
12.ひらがな⇔カタカナ、全角⇔半角の変換(自作関数)
ひらがな→カタカナ カタカナ→ひらがな 半角→全角 全角→半角