AWS RedshiftのConcat関数は、2つ以上の文字列を連結(結合)し、結果の文字列を返すために使用されます。 結果の変数のデータ型は、Concat関数への入力変数のデータ型と同じです。 Concat関数は単一の文字列には適用できません。 2つ以上のストリングに適用できます。 3つ以上の文字列にConcat関数を適用する場合は、NestedConcat関数が使用されます。 連結関数は、2つの文字列または式の間で使用される連結演算子(||)と同等です。
CONCAT関数の構文
Concat関数の構文は次のとおりです。
1 |
CONCAT (( ストリング 1、 ストリング 2 )。 |
ここで両方の議論 「文字列1」と「文字列2」 固定長または可変長の文字列にすることができます。
入力文字列のデータ型が異なる場合、AmazonRedshiftは文字列の1つを無条件に型キャストしようとします。 値をキャストできない場合は、AmazonRedshiftからエラーが返されます。
CONCAT関数の使用例
Concat関数の動作を完全に理解するために、いくつかの例を見てみましょう。 このセクションには、CONCAT関数をよりよく理解するための複数の例が含まれています。
単純な文字列の連結
この例では、2つの文字列を連結します– 「AWS」と「Redshift」。 次のRedshiftクエリを使用して、これらの文字列を連結します。
1 |
選択する concat((「AWS」、 「Redshift」)。; |
このクエリの出力は次のとおりです。
連結演算子(||)を使用しても同じ結果を生成できます。 次のクエリを使用して、Redshiftクラスターの連結演算子を使用して文字列を連結します。
1 |
選択する 「AWS」||「Redshift」; |
このクエリの出力は次のとおりです。
それでは、文字列を連結してみましょう。 「5月21日」と「2022」。 次のRedshiftクエリは、CONCAT関数を使用してこれらの文字列を連結します。
1 |
選択する concat((「5月21日」、 ‘、2022’)。; |
次の出力を生成します。 両方の入力パラメータが文字列であるため、このクエリのデータ型は文字列であることに注意してください。
同じ例を試してください。ただし、今回は連結演算子(||)を使用します。 これらの文字列を連結するためのクエリは次のとおりです。
1 |
選択する 「5月21日」||‘、2022’; |
このクエリの結果は次のようになります。
ネストされた連結
3つ以上の文字列を連結する場合は、ネストされた連結関数が使用されます。 同様に、連結演算子(||)を使用して、Redshiftクラスター内の2つまたは3つ以上の文字列を連結することもできます。 このセクションでは、連結演算子(||)とCONCAT関数の両方を使用して、ネストされた連結を実装します。
次の例では、Concat関数をよりよく理解するために、3つ以上の文字列を連結しようとします。 最初の文字列は日です。 “土曜日”。 2番目の文字列は日付と月です。 「5月21日」。 そして、3番目の文字列は年です。 「2022」。
次のクエリは、これらの文字列にネストされた連結を実装するために使用されます。
1 |
選択する concat((‘土曜日、 ‘、連結((「5月21日」、‘2022’)。)。; |
このクエリは、次の出力を生成します。
1 |
5月21日(土) 2022年
((1 行)。 |
複数の文字列を連結するには、RedshiftクラスターのConcat関数の代わりに連結演算子(||)を使用します。 連結演算子(||)は、両側から文字列を取得し、それらを連結して出力を生成します。
次のクエリは、連結演算子(||)を使用して複数の文字列を連結します。
1 |
選択する ‘土曜日、 ‘|| 「5月21日」||‘2022’; |
このクエリの出力は次のとおりです。
1 |
5月21日(土) 2022年
((1 行)。 |
RedshiftでのNULL値の処理
この場合、1つ以上のNULL値をConcat関数に渡すと、結果は空になります。 空の値を確認するために、Redshiftクラスターでサンプルクエリを実行します。
次のクエリでは、Concat関数の1つのパラメーターがNULLです。
1 |
選択する concat((「AWSRedshift」、 ヌル)。; |
このクエリを実行すると、空の出力が生成されます。
ここで、Concat関数の代わりに連結演算子(||)を使用して同じ例を試します。
1 |
選択する 「AWSRedshift」||ヌル; |
このクエリの出力も空になります。
データのnull値を解決するには、 NVL コマンドが使用されます。 NVL コマンドは、データ内のNULL値を処理する役割を果たします。
ここで、を使用する例を取り上げます。 NVL を処理する ヌル パラメータ。 そのために、ヌル処理関数を使用します。 NVL、null値を処理します。
次のクエリを使用して、文字列と文字列を連結できます。 ヌル によって処理されるパラメータ NVL 関数:
1 |
選択する concat((「AWSRedshift」、NVL((ヌル、 ”)。)。; |
次の出力を生成します。 ヌル 空の文字列としてのパラメータ:
同じ例を試してください。ただし、今回は連結演算子を使用します。
1 |
選択する 「AWSRedshift」 || NVL((ヌル、 ”)。; |
このクエリの出力は次のとおりです。
REDSHIFTテーブルへのCONCAT関数の適用
このセクションでは、テーブルでCONCAT関数を適用します。 AWSが設定したデータベースを使用して、CONCAT関数を適用します。
CONCAT関数をに適用します 会場 AmazonREDSHIFTが提供するテーブル。 両方を連結します 会場名と会場の座席の場所の列 75000より大きい。
次のクエリは、のデータを連結します 会場名と会場都市 会場の座席が75000を超える場合:
1 |
選択する concat((会場名、会場)。
会場から 会場席 >> 2000; |
このクエリの出力は次のとおりです。
1 |
FedExFieldLandover
ニューヨークジャイアンツスタジアムイーストラザフォード アローヘッドスタジアムカンザスシティ インベスコフィールドデンバー ((4 行)。 |
ここで、連結演算子を使用してこの例を試してください。 しかし、私たちは連結します 会場とveuestate 今回は列。 また、条件を変更します 会場席 73500まで:
1 |
選択する 会場都市||会場状態
会場から 会場席 >> 73500 会場席順。 |
次の結果が生成されます。
1 |
ジャクソンビルFL
オーチャードパークNY マイアミガーデンズFL DenverCO カンザスシティMO イーストラザフォードNJ LandoverMD ((7 行)。 |
ここで、ネストの概念を適用します CONCAT の機能 会場 テーブル。 クエリは、 会場名と会場都市 テーブルからの値。 また、結果の文字列にコンマとスペースを追加します。
1 |
選択する concat((concat((会場名、‘、’)。、venuecity)。
会場から 会場席 >> 74000 会場席順。 |
このクエリの出力は次のとおりです。
1 |
ドルフィンスタジアム、マイアミガーデンズ
インベスコフィールド、デンバー カンザスシティ、アローヘッドスタジアム ニューヨークジャイアンツスタジアム、イーストラザフォード FedExField、Landover ((5 行)。 |
この次の例では、nullを含む列を連結して、 NVLを使用してNULL 関数:
1 |
選択する concat((会場名、連結((‘席’、nvl((会場席、 0)。)。
会場から会場状態= 「NC」 またはvenuestate= 「NV」 注文する 1 制限 7; |
このクエリを実行すると、次の結果が生成されます。
1 |
バリーズホテルの座席 0
ヒルトンホテルの座席 0 ベラージオホテルの座席 0 バンクオブアメリカスタジアムの座席 73298 シーザーズパレスの座席 0 ルクソールホテルの座席 0 ハラーズホテルの座席 0 ((7 行)。 |
結論
この記事では、複数の例を使用してCONCAT関数を使用する方法について説明しました。 Concat関数、Nested Concat関数、およびConcatenationOperatorの概念を適用しました。 NVL関数を使用してCONCAT関数のNULL値を処理する方法を学習しました。 AWS Redshift Concat関数は、2つ以上の文字列をデータベースに連結するための完全な特権を提供します。
The post RedshiftConcat関数 appeared first on Gamingsym Japan.