連結:||とCONCAT
||演算子とCONCAT()で文字列を連結し、それぞれがNULL入力をどう扱うかを理解します。
「連結:||とCONCAT」はCoddyKit上の無料SQL Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSQL Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SQL Academyコースには全4レッスンが含まれています。
標準的な連結:||
文字列を連結するSQL標準の演算子は || です。
SELECT first_name || ' ' || last_name AS full_name FROM users;
SELECT 'Hello, ' || name || '!' FROM users;||とNULLの組み合わせはNULL
いずれかのオペランドがNULLの場合、式全体がNULLになります。明示的に処理してください。
SELECT first_name || ' ' || NULL; -- NULL
-- Defend with COALESCE:
SELECT first_name || ' ' || COALESCE(last_name, '') FROM users;CONCAT:NULLに安全な代替手段
CONCATはNULLを空文字列として扱います。
SELECT CONCAT(first_name, ' ', last_name) FROM users;
SELECT CONCAT(first_name, ' ', NULL); -- 'first_name ' (no NULL)CONCAT_WS:区切り文字付き
「区切り文字で連結する」場合に最も読みやすい方法です。
SELECT CONCAT_WS(' ', title, first_name, middle_initial, last_name) AS pretty_name
FROM users;
-- ' ' between non-NULL fields only文字列と数値の混在
キャストを行うか、暗黙の変換に任せることができます(PostgreSQLは厳格なため、明示的なキャストの方が安全です)。
SELECT 'Order #' || id::TEXT FROM orders;
SELECT CONCAT('Order #', id) FROM orders; -- CONCAT auto-casts表示用文字列の作成
読みやすいラベルを組み立てます。
SELECT id,
email,
CONCAT_WS(', ', city, region, country) AS location
FROM users;STRING_AGGによる集約値の連結
複数の行の値を連結するには、STRING_AGG(またはarray_agg)を使用します。
SELECT user_id,
STRING_AGG(name, ', ' ORDER BY name) AS tag_names
FROM user_tags
GROUP BY user_id;テンプレート文字列用のFORMAT
PostgreSQLの format() はprintf形式で、NULLにも安全です。
SELECT format('User %s (id=%s) joined on %s',
full_name, id, created_at::DATE)
FROM users;空文字列とNULLの違い
列ごとに、空文字列が有効な値かどうかを決めてください。有効でない場合は、入力時に '' をNULLとして扱います。
INSERT INTO contacts (phone) VALUES (NULLIF(:phone, ''));複数行の文字列リテラル
PostgreSQLでは、エスケープせずに複数行の文字列を記述できるドルクォートをサポートしています。
SELECT $$Hello,
'World' — with quotes!$$;
SELECT $custom_tag$ ... $custom_tag$;連結のパフォーマンス
連結は高速で、1秒あたり数百万件を処理できます。通常、コストがかかるのは文字列操作ではなく、行のI/Oです。
振り返り
標準的な連結には||、NULLを無視するにはCONCAT/CONCAT_WS、テンプレートにはFORMAT、多数の行の連結にはSTRING_AGGを使用します。
確認問題
last_name がNULLの場合、first_name || ' ' || last_name は何を返しますか?
よくある質問
「連結:||とCONCAT」レッスンは無料ですか?
はい。「連結:||とCONCAT」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SQL Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SQL Academyコースには全4レッスンが含まれています。
「連結:||とCONCAT」で何を学びますか?
||演算子とCONCAT()で文字列を連結し、それぞれがNULL入力をどう扱うかを理解します。 ブラウザで直接実行するハンズオンコードでSQL Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
SQL Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSQL Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「連結:||とCONCAT」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSQL Academyレッスンでコードを書いて実行できますか?
はい。すべてのSQL Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。