SAK 図書館
PostgreSQL 編13 - 文字関数、連結、空白削除、置換、切出、検索、長さ、数値
■文字列連結
・「||」演算子で文字列の結合を行う。
concat() 関数は、PostgreSQL では使用できない。
select 'abc' || 'def';
?column?
----------
abcdef
select key || data1 from testm;
■chr 文字変換
・chr() 関数は、コードに該当する ASCII 文字を返す。
この例では、「1」と言う文字が返る。
select chr(49);
chr
-----
1
■ascii コード変換
・ascii() 関数は、文字に該当する ASCII コードを返す。
この例では、「49」と言う数字が返る。
select ascii('1');
ascii
-------
49
■小文字化
・lower() 関数は、英字を小文字にして返す。
select lower('ABC012');
lower
--------
abc012
■大文字化
・upper() 関数は、英字を大文字にして返す。
select upper('abc012');
upper
--------
ABC012
■左文字埋め
・lpad() 関数は、文字列の左に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)
select lpad('abc', 5, '0');
lpad
-------
00abc
select lpad('abc', 5, '012');
lpad
-------
01abc
・指定文字省略値は ' ' 半角スペースです。
select lpad('abc', 5);
lpad
-------
abc
select lpad('abc', 5, ' ');
lpad
-------
abc
■右文字埋め
・rpad() 関数は、文字列の右に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)
select rpad('abc', 5, '0');
rpad
-------
abc00
select rpad('abc', 5, '012');
rpad
-------
abc01
・指定文字省略値は ' ' 半角スペースです。
select rpad('abc', 5);
rpad
-------
abc
select rpad('abc', 5, ' ');
rpad
-------
abc
■左空白削除
・ltrim() 関数は、文字列の左側の空白を除去します。
select ltrim(' abc');
ltrim
-------
abc
■右空白削除
・rtrim() 関数は、文字列の右側の空白を除去します。
select ltrim('abc ');
ltrim
---------------
abc
■左右空白削除
・trim() 関数は、文字列の左右の空白を除去します。
select trim(' abc ');
btrim
-------
abc
■文字列置き換え
・translate() 関数は、凝った文字列の置き換えをする。
select translate('abc012', '0123456789abc', '0000000000AAA');
translate
-----------
AAA000
・カットもできる。この例では、「000」が返る。
select translate('abc012', '0123456789abc', '0000000000');
translate
-----------
000
■文字列切り出し
・substr() 関数は、文字列の切り出しをする。
select substr('abc012', 3, 2);
substr
--------
c0
・開始位置以降、最後まで切り出す場合は、切り出す文字数を省略できる。
select substr('abc012', 3);
substr
--------
c012
■文字列検索
・strpos() 関数は、文字列の検索を行う。
開始位置や後方検索の指定は、PostgreSQL ではできない。
select strpos('abc012', 'c0');
strpos
--------
3
■文字列の長さ
・length() 関数は、文字列の長さを返す。
octet_length() 関数は、バイトで返します。
select length('abc012');
length
--------
6
■文字列繰り返し
・repeat() 関数は、文字列を繰り返し返す。
select repeat('abc012', 2);
repeat
--------------
abc012abc012
■数値から文字列へ変換 (数値フォーマット、書式変換)
・to_char() 関数は、数値を文字列型に変換します。
単純な to_char(123456) は、明示的にする必要がないようです。
「数値 || 数値」すると自動的に文字変換され結合されます。
select 123456 || 789012;
?column?
--------------
123456789012
・三桁毎に数値にカンマ「,」を入れたい場合、次のようにします。
select to_char(123456, '999,999,999,999');
to_char
------------------
123,456
・小数点以下をフォーマットする場合は、次のようにします。
select to_char(123456, '999,999,999,999.99');
to_char
---------------------
123,456.00
・ゼロ埋め(0 埋め) フォーマットする場合は、次のようにします。
select to_char(123456, '000000000000');
to_char
---------------
000000123456
■文字列から数値へ変換
・to_number() 関数は、文字列を数値に変換します。
select to_number('00123456', '000000000000');
to_number
-----------
123456
select to_number('123,456', '999,999,999,999');
to_number
-----------
123456
select to_number('123' || '456', '999999999999');
to_number
-----------
123456
■型変換
・cast() 関数は、ANSI 規程の変換関数です。
select cast('123' || '456' as int8);
int8
--------
123456
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料
■SQL 基礎編資料
■SQL 基礎実地編資料
■SQL チューニング編資料
■Oracle PL/SQL 編資料