導入
「名前の文字数を数えたい」「2つの列をつないで1つの表示にしたい」「一部だけ切り出したい」。文字列を加工する道具が、SQL には一通りそろっています。よく使うものを、実際に動かしながら覚えましょう。
説明
代表的な文字列関数です(SQLite の場合)。
| 関数 | 意味 | 例 → 結果 |
|---|---|---|
length(s) | 文字数 | length('マウス') → 3 |
upper(s) / lower(s) | 大文字/小文字化(英字) | upper('shipped') → SHIPPED |
substr(s, 開始, 長さ) | 部分文字列(1始まり) | substr('2026-01-05', 1, 4) → 2026 |
replace(s, 前, 後) | 置換 | replace('A-B', '-', '/') → A/B |
| `a | b` |
||(縦棒2つ)は文字列の連結です。列と固定文字を混ぜて、表示用の1列を作れます。
SELECT '商品「' || name || '」は' || price || '円' AS 説明 FROM products;
数値の price も、|| の中では自動的に文字へ変換されてつながります。文字数を数える length や、一部を取り出す substr は、コードや日付文字列の一部を扱うときに重宝します。
やってみよう
初期表示のクエリを実行し、orders の status が大文字になった列や文字数の列を確認しましょう。次に SELECT '商品「' || name || '」は' || price || '円' AS 説明 FROM products; を実行して、複数の値が1つの文になることを見てください。
演習
users から、name と city を「(都市)名前」の形につないだ列を label という別名で取り出してください。たとえば佐藤さんなら (東京)佐藤 となります。
ヒント1を見る
連結は ||。固定文字はシングルクオートで囲みます。'(' || city || ')' || name
ヒント2を見る
SELECT '(' || city || ')' || name AS label FROM users;