概要
文字列を結合するには||演算子か
関数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
-
公式のconcat()に関するドキュメント
https://www.sqlite.org/lang_corefunc.html#concat