PostgreSQL の文字列連結
さまざまな理由で文字列を連結できます。 1 つの文字列だけを操作したいが、2 つの列から値を抽出したい場合があります。何らかの理由で文字列を連結したい場合、PostgreSQL で使用できるオプションが 2 つあります。関連する例を挙げて、それぞれについて詳しく説明します。
1. 連結演算子 (||) の使用
PostgreSQL では、(||) は文字列を連結するために使用できる連結演算子です。 3 つ以上の文字列を使用し、同じロジックを使用してそれらを結合することができます。
たとえば、「Linux」と「Hint」という 2 つの文字列があるとします。 – 連結したい場合は、次のコマンドを実行します。
区切り文字として空の文字列を追加していることに注意してください。さらに、出力に「name」という名前を付けます。最初の (|)|演算子は最初の文字列の後に来ます。その後、空の文字列を区切り文字として追加し、もう 1 つの (||) 演算子を追加して 2 つの文字列を連結します。複数の文字列がある場合は、同じロジックを使用します。
2. CONCAT() の使用
最初のオプションの連結では、クエリに冗長さが生じていることに気づくかもしれません。ただし、CONCAT() を使用すると、クエリに礼儀を持たせることができます。これにより、連結が簡素化され、より簡単に使用できるようになります。
その構文は次のとおりです。
SELECT CONCAT(文字列1, [区切り文字], 文字列2);
セパレータはオプションですが、出力をきれいにするために追加することをお勧めします。すべては、連結で何を達成したいかによって異なります。
先ほどと同じ例を CONCAT() を使用して再実行するには、次のコマンドを実行します。
SELECT CONCAT('Linux', ' ', 'ヒント');同じ出力が得られますが、よりわかりやすいクエリが得られます。
出力にさらにカスタム名を付けたい場合は、AS キーワードの後に出力に使用するカスタム名を追加します。
次の例は、出力に「fullname」という名前を付ける方法を示しています。
区切り文字を追加しないとします。 PostgreSQL は 2 つの文字列をマージし、次のような出力が得られます。
文字列の 1 つが null 値である文字列を連結することができます。おそらく、テーブルを操作していて、その列が null を受け入れる可能性があります。このような場合、「null」キーワードを追加すると正常に機能し、空の文字列として扱われます。
次の例を確認して、そのようなケースをどのように実証するかを確認してください。
テーブルがあり、2 つの列を連結したいとします。プロセスは同じですが、いくつか追加されています。デモ用に次の表を用意してみましょう。
すべての生徒のフルネームを抽出したいとします。 「fname」と「lname」を連結する必要があります。コマンドでは、ターゲット列、区切り記号、およびテーブル名を指定する必要があります。
したがって、次のように実行します。
CONCAT_WS() の操作
CONCAT() を使用する場合、文字列の間に区切り文字が追加されることがわかります。ただし、PostgreSQL では、ユーザーが別の方法でセパレータを追加できるように、「セパレータ付き」を表す CONCAT_WS() を提供しています。
このオプションを使用すると、区切り文字が最初に来て、その後に文字列を追加できます。目的は、クエリ内で順序を作成することです。 CONCAT_WS() を使用して前のクエリを再実行するには、次のようなコマンドがあります。
同じ出力が得られますが、コマンドの形式が変わります。これが、PostgreSQL で文字列を連結する方法です。
結論
PostgreSQL の文字列連結は、さまざまな状況で役立ちます。この投稿では、文字列をすばやく連結する 2 つの方法について説明しました。試してみて、より快適な方法で練習を続けてください。それはとても簡単です!