文字列関数の使い方

文字を加工する

書き方

UPPER(s) LOWER(s) LENGTH(s)
SUBSTRING(s FROM 開始 FOR 長さ) / SUBSTR(s, 開始, 長さ)
TRIM(s) REPLACE(s, 古, 新) LPAD(s, 桁, 文字)
s || t  CONCAT(s, t)

|| で文字列をつなげます。位置は 1 から数えます。

よく使うオプション

オプション意味
UPPER / LOWER大文字に / 小文字にする
LENGTH(s)文字の数
SUBSTRING / SUBSTR一部を取り出す(位置は 1 から数える)
TRIM(s)前後の空白を取る
REPLACE(s, 古, 新)文字を置き換える
s || t文字列をつなぐ(CONCAT(s, t) も同じ)

例

SELECT name || 'さん' AS label FROM employees; label
----------
 佐藤さん
 鈴木さん
(2 rows)

名前の後ろに「さん」をつなげて出します。

SELECT email, LOWER(email) FROM employees;

メールアドレスをすべて小文字にして出します。大文字と小文字の混じった値をそろえるときに使います。

SELECT SUBSTRING(phone FROM 1 FOR 2) AS area FROM customers;

電話番号の先頭 2 文字を取り出します。SUBSTR(phone, 1, 2) と書いても同じです。

SELECT REPLACE(phone, '-', '') FROM customers;  replace
------------
 0312345678
(1 row)

電話番号からハイフンを取り除きます。

よくある間違い・注意

  • || で NULL をつなぐと、結果がまるごと NULL になります(PostgreSQL)。CONCAT は NULL を空として扱います。
  • MySQL では || が文字列をつながず「または」の意味になる設定があります。そのときは CONCAT を使います。
  • LENGTH は文字の数を数えます。バイト数が欲しいときは OCTET_LENGTH を使います(PostgreSQL)。

実際に打って練習する

SQL コースの Lv14「文字を操る関数」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る