![PostgreSQL CONCAT()](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT.jpg)
2つ以上の文字列を連結するには、PostgreSQLが提供する文字列連結演算子(||)またはCONCAT()関数を使用できます。 CONCAT()関数は、バージョン9.1以降のPostgreSQLが提供する組み込み関数です。 可変個の関数であり、要素のリストを入力として受け取るため、文字列要素の配列をPostgreSQLのCONCAT()関数に渡すことができます。 つまり、指定された引数のリストからの入力文字列の1つがNULLであっても、文字列を連結できます。
:
無料のデータサイエンスコースを開始
Hadoop、データサイエンス、統計&その他
CONCAT()関数の次の構文を考えてみましょう:
CONCAT(string_1, string_2, ...)
説明: PostgreSQLのCONCAT()関数は引数リストを入力として受け取ります。
PostgreSQL CONCAT()関数はどのように機能しますか?
- PostgreSQL CONCAT()は、この関数が任意の数の要素を入力として取ることができる可変長関数であるため、リストの各要素を引数とみなします。
- 関数に提供される入力引数は、文字列型であるか、文字列型に変換可能である必要があります。
- 文字列型は、入力引数が次のいずれかのデータ型であることを意味します:
- Varchar
- Char
- テキスト
PostgreSQL CONCAT()関数を実装する例
PostgreSQL CONCAT()関数を使用して二つの文字列を連結する次の例を考えてみましょう。 次のSELECTステートメントとスナップショットを使用して、CONCAT関数を説明します
SELECT CONCAT ('Edu', 'CBA') as CONCAT_TABLE;
出力:
![PostgreSQL CONCAT()-1.1](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.1.png)
次のようにCREATE TABLEステートメントを使用して、’student’という名前のテーブルを作成します:
create table student
(
stud_id serial PRIMARY KEY,
stud_fname VARCHAR(80) NOT NULL,
stud_lname VARCHAR(80) NOT NULL
);
次のようにINSERT INTOステートメントを使用して、studentテーブルにいくつかのデータを挿入します。
INSERT INTO student(stud_fname,stud_lname)
VALUES
('Smith','Johnson'),
('Williams','Jones'),
('Brown','Davis');
次のSQLステートメントとsnapshotを使用して、上記のINSERTステートメントの結果を示します。
select * from student;
出力:
![PostgreSQL CONCAT()-1.2](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.2.png)
次のSQLステートメントとスナップショットを使用して、studentテーブルのstud_fname列とstud_lname列の値を連結します。
SELECT
CONCAT (stud_fname, ' ', stud_lname) AS "Students fullname"
FROM
Student;
出力:
![PostgreSQL CONCAT()-1.3](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.3.png)
次のSQL文とsnapshotを使用してCONCAT()関数を使用して、NULL値を文字列と連結することができます。
SELECT CONCAT('EduCBA is', NULL, ' awesome.') AS NULL_concatenated_string;
出力:
![出力-1.4](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.4.png)
PostgreSQLのCONCAT()関数は、入力引数を結合している間にNULL文字列を無視したことがわかります。 同時に、文字列連結演算子(||)を使用して文字列を連結する次のSQLステートメントの結果が表示されます。
SELECT 'EduCBA is'|| NULL || 'awesome' AS NULL_string;
出力:
![出力-1.5](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.5.png)
返された結果はNULL文字列であることがわかりますが、CONCAT関数はNULL文字列を無視するために適切に機能しました。
次の文字列を組み合わせて結果の文字列を与えるステートメントを構築する必要があるような、さまざまな操作にPostgreSQL CONCAT()関数を使用できます:
- ‘学生の名前はのです。’
- 学生の名の場合の長さ。
- ‘文字。
SELECT
stud_fname,
CONCAT('Student name is of ', LENGTH (stud_fname), ' characters' )
FROM
student;
出力:
![出力-1.6](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.6.png)
PostgreSQLにはCONCAT_WSという名前の関数も用意されています。
次のステートメントを使用して、studentテーブルのstud_fnameとstud_lnameを連結します。
SELECT
concat_ws (', ', stud_fname, stud_lname) AS student_full_name
FROM
student
ORDER BY
stud_fname;
出力:
![出力-1.7](https://cdn.educba.com/academy/wp-content/uploads/2020/04/PostgreSQL-CONCAT-1.7.png)
利点
- 文字列連結演算子(||)を使用して二つ以上の文字列を連結することができるので、CONCAT()関数がNULL引数を無視して連結するNULL引数で失敗します。
- CONCAT()関数は、引数のリストを入力として取ることができる可変個の関数です。
- 複数の文字列を連結することで、必要な出力文字列を構築できます。
- CONCAT()関数は文字列型の入力に対してのみ動作します。
推奨記事
これはPostgreSQL CONCAT()のガイドです。 ここではまた、定義とPostgreSQL Concat()関数がどのように機能するかについても説明します。 さまざまな例とそのコードの実装とともに。 また、詳細については、次の記事をご覧ください–
- PostgreSQL JSON
- PostgreSQL一意制約
- PostgreSQL制限
- PostgreSQLタイムスタンプ
- PostgreSQLをどのように動作させるのですか?