文字列操作をまとめました【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(小文字へ変換)

ここで詳しく説明しています ↓

lower(大文字を小文字に変換する)

upper(小文字を大文字に変換する)

大文字小文字を変換する、区別せず比較する

 

 

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.ひらがな⇔カタカナ、全角⇔半角の変換(自作関数)

ひらがな→カタカナ  カタカナ→ひらがな  半角→全角  全角→半角