Programing

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

lottogame 2020. 12. 11. 07:37
반응형

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 개 열이 표시됩니다.

쿼리 내에서 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각 열의 -ness를 개별적 으로 확인할 필요가 없습니다 .

또는 두 열이 실제로로 정의 된 NOT NULL경우 CONCAT () 이면 충분합니다.

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

에 관해서 COALESCE는 약간 다른 짐승입니다. 인수 목록이 주어지면 NULL.


ContactPhoneAreaCode1 및 ContactPhoneNumber1을 나열 할 필요가 없습니다.

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

CONCAT에서 사용하기 위해 열을 별도로 선택할 필요는 없습니다. 간단히 제거하면 쿼리가 다음과 같이됩니다.

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

NULL열의 경우 IF:의 두 기능을 결합하고 공백 또는 '_'와 같은 결과에서 열 사이에 특수 문자를 사용 하는 다음 CONCAT같은 절 을 사용하는 것이 좋습니다 .COALESCE

SELECT FirstName , LastName , 
IF(FirstName IS NULL AND LastName IS NULL, NULL,' _ ',CONCAT(COALESCE(FirstName ,''), COALESCE(LastName ,''))) 
AS Contact_Phone FROM   TABLE1

참고 URL : https://stackoverflow.com/questions/18860233/mysql-select-as-combine-two-columns-into-one

반응형