programing

MySQL SELECT AS는 두 열을 하나로 결합합니다.

randomtip 2022. 9. 8. 21:29
반응형

MySQL SELECT AS는 두 열을 하나로 결합합니다.

솔루션을 사용하여 데이터를 내보낼 때 컬럼 이름을 지정하기 위해 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개의 컬럼을 원했습니다.이름, 성, 연락처_전화

5개의 컬럼이 표시됩니다.First_Name, Last_Name, ContactPhoneAreaCode1, ContactPhoneNumber1 및 Contact_전화

Contact_에 대해 ContactPhoneAreaCode1, ContactPhoneNumber1의 단일 컬럼으로의 Marge를 숨기려면 어떻게 해야 합니까?쿼리 내에서 전화입니까?

두 열 모두 다음을 포함할 수 있는 경우NULL단, 1개의 문자열로 Marge하는 경우는 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.

Contact Phone Area Code 1과 Contact Phone Number 1은 나열할 필요가 없습니다.

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

반응형