
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
실습 중에서는 모든 이메일 주소 앞부분이 8자리로 시작하므로 substr절 만으로도 도메인을 쉽게 찾을 수 있습니다. 하지만 현실에서는 이메일 주소 길이가 다 다를 것이기 때문에, 어떻게 하면 도메인 이름만 끌어올 수 있는지가 궁금합니다.
다른 분의 질문 중 한 튜터님께서 instr절을 이용하여 도메인 네임을 사용하시길래 저도 따라해 보았는데요.
(*질문 참고 페이지: https://spartacodingclub.kr/community/fastqna/all/67ac4c4a7cef4b0920f6f5d6/%EC%9D%B4%EB%A9%94%EC%9D%BC%20)
(1): 해당 코드를 실행해보면 도메인 칼럼에서 지메일이 사라져 있고 빈칸만 나옵니다. 왜 지메일만 안 나오는지, 다시 나오게 할 방법은 없는지 궁금합니다.
SELECT
substr(substr(email, instr(email, '@')), 2) as "도메인",
count(1) as "고객 수",
avg(age) as "평균 연령"
FROM
customers
GROUP BY
1
(2): 한 튜터님께서 아래 코드로 @기호와 닷컴, 닷넷 등을 제외한 도메인 이름만 뽑아오신 걸 봤습니다. 하지만, 한눈에 보기에 너무 어렵고 괄호도 많아서 헷갈리는 것 같습니다. 조금 더 쉽게, 가독성을 높일 수 있는 코드로 변경해서 할 수는 없을까요?
SELECT
email,
substr(substr(email, instr(email, '@') + 1), 1, length(substr(email, instr(email, '@')+ 1)) - 4) as domain
FROM
customers
WHERE
email is not null;
(3): "hanmail"은 "한메일", "naver"는 "네이버" 등 뽑은 영어 도메인 이름들을 한번에 한국어로 변경할 수 있는 함수/절은 무엇이 있나요?
