sql >> データベース >  >> RDS >> Database

SQLで文字列を連結する方法

    問題:

    テーブルの2つの列の文字列を1つに結合したい。

    例:

    私たちのデータベースには、student 次の列にデータがあります:idfirst_name およびlast_name

    id first_name last_name
    1 ロラ スミス
    2 エミル ブラウン
    3 アレックス ジャクソン
    4 マーティン デイビス

    生徒の名前に名前を1つの文字列で追加しましょう。各名前の間にスペースを使用してください。

    解決策:

    SELECT first_name || ‘ ‘ || last_name AS full_name
    FROM student;
    

    このクエリは、full_nameという名前の1つの列にレコードを返します :

    full_name
    Lora Smith
    エミル・ブラウン
    アレックスジャクソン
    マーティンデイビス

    ディスカッション:

    別の文字列に文字列を追加して1つの結果を返すには、||を使用しますオペレーター。これにより、左右から2つの文字列が加算され、1つの結果が返されます。列の名前を使用する場合は、引用符で囲まないでください。ただし、文字列値をスペースまたはテキストとして使用する場合は、引用符で囲んでください。

    この例では、first_nameにスペースを追加しました 次に、列last_name 。この新しい列はfull_nameと呼ばれます 。

    特殊機能CONCATを使用することもできます。引数として結合するには、文字列のリストまたは列の名前が必要です。

    SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
    FROM student;
    

    結果は同じです。

    ただし、CONCAT()関数は、NULL値を持つ列からデータを取得する場合に適しています。なんで?結合する値にNULLが含まれている場合、演算子は結果としてNULLを返すためです。 CONCAT()の場合、NULLは表示されません。

    ||の結果を見てくださいEmillに姓が記録されていない場合の演算子:

    SELECT first_name || ‘ ‘ || last_name AS full_name
    FROM student;
    
    full_name
    Lora Smith
    NULL
    アレックスジャクソン
    マーティンデイビス

    同じデータのCONCAT関数を見てください:

    SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
    FROM student;
    
    full_name
    Lora Smith
    Emil
    アレックスジャクソン
    マーティンデイビス

    1. ウェビナー:SQLServerでのクエリの進行状況の追跡

    2. SQLServerのパフォーマンスを損なうActivityMonitorを回避する方法

    3. 読み取り/書き込みモードでデータベースを開くことができませんでした

    4. OracleSQLDeveloperを使用したデータモデルのリバースエンジニアリング