- カテゴリ:
文字列とバイナリ関数 (一般)
CONCAT、 ||
¶
1つ以上の文字列を連結するか、1つ以上のバイナリ値を連結します。
||
演算子は CONCAT の代替構文を提供し、少なくとも2つの引数が必要です。
- こちらもご参照ください。
構文¶
CONCAT( <expr> [ , <expr> ... ] )
<expr> || <expr> [ || <expr> ... ]
引数¶
expr
入力式はすべて文字列であるか、すべてバイナリ値である必要があります。
戻り値¶
戻り値のデータ型は、入力値のデータ型と同じです。
入力値のいずれかが NULL の場合、 NULL を返します。
使用上の注意¶
GET_DDL などのメタデータ関数は、入力として定数のみを受け入れます。連結入力はエラーを生成します。
照合順序の詳細¶
The collation specifications of all input arguments must be compatible.
The collation of the result of the function is the highest-precedence collation of the inputs.
例¶
2つの文字列を連結します。
SELECT CONCAT('George Washington ', 'Carver');
+----------------------------------------+
| CONCAT('GEORGE WASHINGTON ', 'CARVER') |
|----------------------------------------|
| George Washington Carver |
+----------------------------------------+
2つの VARCHAR 列を連結します。まず、テーブルを作成してデータを挿入します。
CREATE OR REPLACE TABLE concat_function_example (s1 VARCHAR, s2 VARCHAR, s3 VARCHAR);
INSERT INTO concat_function_example (s1, s2, s3) VALUES
('co', 'd', 'e'),
('Colorado ', 'River ', NULL);
クエリを実行します。
SELECT CONCAT(s1, s2)
FROM concat_function_example;
+-----------------+
| CONCAT(S1, S2) |
|-----------------|
| cod |
| Colorado River |
+-----------------+
3つ以上の文字列を連結します。
SELECT CONCAT(s1, s2, s3)
FROM concat_function_example;
+--------------------+
| CONCAT(S1, S2, S3) |
|--------------------|
| code |
| NULL |
+--------------------+
NULL でない文字列を連結するには、 IFF 関数と CONCAT 関数を併用します。
SELECT CONCAT(
IFF(s1 IS NULL, '', s1),
IFF(s2 IS NULL, '', s2),
IFF(s3 IS NULL, '', s3)) AS concat_non_null_strings
FROM concat_function_example;
+-------------------------+
| CONCAT_NON_NULL_STRINGS |
|-------------------------|
| code |
| Colorado River |
+-------------------------+
関数の代わりに連結演算子 ||
を使用します。
SELECT 'This ' || 'is ' || 'another ' || 'concatenation ' || 'technique.';
+--------------------------------------------------------------------+
| 'THIS ' || 'IS ' || 'ANOTHER ' || 'CONCATENATION ' || 'TECHNIQUE.' |
|--------------------------------------------------------------------|
| This is another concatenation technique. |
+--------------------------------------------------------------------+