1. ホーム
  2. mysql

[解決済み] MySQL SELECT ASは2つのカラムを1つに結合する

2023-06-27 10:16:16

質問

使用方法 この解決策 を使用して、データをエクスポートするときに列名に SELECT As を使用して csv ファイルに出力する MySQL クエリの一部として COALESCE を使用することを試みました。

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , ContactPhoneAreaCode1
     , ContactPhoneNumber1
     , COALESCE(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

3つのカラムが必要でした。名前、姓、電話番号の3つのカラムが必要です。

私は5つのカラムを取得します。First_Name, Last_Name, ContactPhoneAreaCode1, ContactPhoneNumber1, Contact_Phone の5つのカラムが表示されます。

ContactPhoneAreaCode1、ContactPhoneNumber1 の結合をクエリ内から Contact_Phone の単一の列に隠すにはどうすればよいですか。

どのように解決するのですか?

両方のカラムに NULL を含むことができ、それでもそれらを単一の文字列に結合したい場合、最も簡単な解決策は CONCAT_WS() :

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , CONCAT_WS('', ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

こうすることで、チェックする必要がなくなるのは NULL -を個別にチェックする必要がなくなります。

あるいは、両方のカラムが実際に NOT NULL , CONCAT() で十分です。

SELECT FirstName AS First_Name
     , LastName AS Last_Name
     , CONCAT(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone 
  FROM TABLE1

については COALESCE に関しては、少し違う性質を持っています。引数のリストが与えられると、それは NULL .