2026年2月1日日曜日

SQLite3 文字列を結合する (concat(X,Y,...))

概要

文字列を結合するには||演算子か 関数concat()を使用する。

構文


X || Y || ...
concat(X,Y,...)
                

実行例

単純に文字列を結合する例:

sqlite> select 'taro' || '.' || 'yamada';
taro.yamada
sqlite> select concat('taro','.','yamada');
taro.yamada
                
テーブルのカラムを結合する例:

sqlite> select * from user;
┌────┬────────────┬───────────┐
│ id │ first_name │ last_name │
├────┼────────────┼───────────┤
│ 1  │ taro       │ yamada    │
│ 2  │ jiro       │ yamada    │
│ 3  │ hanako     │ suzuki    │
└────┴────────────┴───────────┘
sqlite> .mode box
sqlite> select
   ...>     first_name || '.' || last_name
   ...>         as full_name
   ...> from
   ...>     user;
┌───────────────┐
│   full_name   │
├───────────────┤
│ taro.yamada   │
│ jiro.yamada   │
│ hanako.suzuki │
└───────────────┘

sqlite> select
   ...>     concat (first_name, '.', last_name)
   ...>         as full_name
   ...> from
   ...>     user;
┌───────────────┐
│   full_name   │
├───────────────┤
│ taro.yamada   │
│ jiro.yamada   │
│ hanako.suzuki │
└───────────────┘
                

NULLを含む場合

||演算子の対象にNULLが含まれる場合、結果もNULLになる:

sqlite> .nullvalue [null]
sqlite> select 'taro' || NULL ;
┌────────────────┐
│ 'taro' || NULL │
├────────────────┤
│ [null]         │
└────────────────┘
                
concat()の引数にNULLが含まれる場合、空文字として扱われる:

sqlite> .nullvalue [null]
sqlite> select concat('taro', NULL );
┌───────────────────────┐
│ concat('taro', NULL ) │
├───────────────────────┤
│ taro                  │
└───────────────────────┘
                

参考URL