PostgreSQL:lpad関数、rpad関数、substr関数、replace関数:数値を文字列に変換する
PostgreSQLで整数型を文字列型に変換する方法
to_char()
関数は、数値をさまざまな書式で文字列に変換するために使用できます。
SELECT to_char(12345, '99999');
-- 結果: '12345'
この例では、12345
という数値を 99999
という書式で文字列に変換しています。
to_char()
関数の書式は、さまざまなオプションを指定できます。詳細は PostgreSQLドキュメント: https://www.postgresql.org/docs/current/functions-formatting.html を参照してください。
:: 演算子を使用する
::
演算子は、データ型をキャストするために使用できます。
SELECT 12345::text;
-- 結果: '12345'
concat()
関数は、複数の文字列を連結するために使用できます。
SELECT concat('', 12345);
-- 結果: '12345'
この例では、空の文字列と 12345
という数値を連結して、文字列を作成しています。
文字列リテラルを使用する
整数リテラルを直接文字列リテラルとして使用することもできます。
SELECT '12345';
-- 結果: '12345'
この例では、12345
という数値リテラルをそのまま文字列として使用しています。
この方法は、単純な数値を文字列に変換する場合に便利です。
PostgreSQLで整数型を文字列型に変換するには、いくつかの方法があります。それぞれの特徴を理解して、状況に応じて適切な方法を選択してください。
補足
- 上記の例は、PostgreSQL 9.4以降で使用できます。
- PostgreSQL 9.3以前を使用している場合は、
to_number()
関数を使用して文字列を数値に変換する必要があります。
-- 1. to_char() 関数を使用する
SELECT to_char(12345, '99999');
-- 結果: '12345'
SELECT to_char(12345.6789, 'FM99999.9999');
-- 結果: '12345.6789'
-- 2. :: 演算子を使用する
SELECT 12345::text;
-- 結果: '12345'
SELECT 12345.6789::numeric(10,2);
-- 結果: '12345.67'
-- 3. concat() 関数を使用する
SELECT concat('', 12345);
-- 結果: '12345'
SELECT concat('値:', 12345, 'です');
-- 結果: '値:12345です'
-- 4. 文字列リテラルを使用する
SELECT '12345';
-- 結果: '12345'
SELECT '値:' || 12345 || 'です';
-- 結果: '値:12345です'
整数型を文字列型に変換する他の方法
lpad() 関数と rpad() 関数を使用する
lpad()
関数は、文字列を左側に指定した文字数になるまで空白文字で埋めます。rpad()
関数は、文字列を右側に指定した文字数になるまで空白文字で埋めます。
SELECT lpad(12345, 10, '0');
-- 結果: '00012345'
SELECT rpad(12345, 10, '0');
-- 結果: '1234500000'
この方法は、数値を固定桁数で表示したい場合に便利です。
substr()
関数は、文字列の一部を抽出するために使用できます。
SELECT substr('12345', 1, 3);
-- 結果: '123'
SELECT substr('12345', 3, 2);
-- 結果: '34'
replace()
関数は、文字列中の特定の文字列を別の文字列に置換するために使用できます。
SELECT replace('12345', '3', 'a');
-- 結果: '12a45'
SELECT replace('12345', '4', '');
-- 結果: '1235'
sql postgresql casting