복붙노트

[SQL] MySQL은 SELECT AS는 하나에 두 개의 열을 결합

SQL

MySQL은 SELECT AS는 하나에 두 개의 열을 결합

이 용액을 사용하여, I 데이터를 내보낼 때 CSV 파일로 출력 열 이름을 선택하면 이름을 사용하여 해당 MySQL의 쿼리의 일부로서 유착을 사용하려고.

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

FIRST_NAME, LAST_NAME과 Contact_Phone : 나는 3 열을 원했다

FIRST_NAME, LAST_NAME, ContactPhoneAreaCode1, ContactPhoneNumber1 및 Contact_Phone : 나는 5 열을 얻고있다

어떻게 쿼리 내에서 Contact_Phone에 대한 하나의 컬럼에 ContactPhoneAreaCode1, ContactPhoneNumber1의 병합을 숨길 수 있습니까?

해결법

  1. ==============================

    1.두 열이 NULL을 포함 할 수 있지만 여전히 하나의 문자열로 병합 할 경우, 가장 쉬운 해결책은 CONCAT_WS ()를 사용하는 것입니다 :

    두 열이 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이 아니다 그 첫 번째 반환합니다.

  2. ==============================

    2.당신은 목록 ContactPhoneAreaCode1 및 ContactPhoneNumber1 할 필요가 없습니다

    당신은 목록 ContactPhoneAreaCode1 및 ContactPhoneNumber1 할 필요가 없습니다

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

    3.당신은 당신의 CONCAT에서 사용하기 위해 별도로 열을 선택할 필요가 없습니다. 간단하게 제거하고 쿼리가 될 것입니다 :

    당신은 당신의 CONCAT에서 사용하기 위해 별도로 열을 선택할 필요가 없습니다. 간단하게 제거하고 쿼리가 될 것입니다 :

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

    4.'_'CONCAT과 유착과 공간 또는 같은 결과의 열 사이에 특수 문자를 사용하여 NULL 컬럼의 경우는의 두 가지 기능을 결합하는이 같은 조항이 경우 사용하는 것이 좋습니다

    '_'CONCAT과 유착과 공간 또는 같은 결과의 열 사이에 특수 문자를 사용하여 NULL 컬럼의 경우는의 두 가지 기능을 결합하는이 같은 조항이 경우 사용하는 것이 좋습니다

    SELECT FirstName , LastName , 
    IF(FirstName IS NULL AND LastName IS NULL, NULL,' _ ',CONCAT(COALESCE(FirstName ,''), COALESCE(LastName ,''))) 
    AS Contact_Phone FROM   TABLE1
    
  5. from https://stackoverflow.com/questions/18860233/mysql-select-as-combine-two-columns-into-one by cc-by-sa and MIT license