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 編資料