📝 1667. Fix Names in a Table
🔹 테이블의 이름 수정
첫 번째 문자만 대문자이고 나머지는 소문자로 이름을 수정하는 솔루션을 작성하세요.
user_id순으로 정렬된 결과 테이블을 반환합니다.
📝 문제 설명
Fix Names in a Table(1667번) 문제는 사용자 이름 데이터를 변환하는 문제입니다.
각 사용자의 이름을 첫 글자는 대문자로, 나머지는 소문자로 변환해야 합니다.
최종 결과는 user_id 순으로 정렬하여 반환해야 합니다.
📊 테이블 구조
Users 테이블
Column Name | Type |
user_id | int |
name | varchar |
💡 SQL 문제 해결 방법
- SUBSTRING 함수를 사용하여 첫 번째 문자와 나머지 문자를 분리합니다.
- UPPER 함수를 사용하여 첫 번째 문자를 대문자로 변환합니다.
- LOWER 함수를 사용하여 두 번째 문자부터 끝까지 소문자로 변환합니다.
- CONCAT 함수를 사용하여 변환된 문자들을 하나의 문자열로 합칩니다.
- ORDER BY user_id를 사용하여 user_id 순으로 정렬합니다.
반응형
🖥️ SQL 풀이
SELECT user_id
, CONCAT(UPPER(SUBSTRING(name, 1, 1)), LOWER(SUBSTRING(name, 2))) AS name
FROM Users
ORDER BY user_id
🔍 쿼리 분석
- SUBSTRING(name, 1, 1): 첫 번째 문자만 추출합니다.
- UPPER(SUBSTRING(name, 1, 1)): 첫 번째 문자를 대문자로 변환합니다.
- SUBSTRING(name, 2): 두 번째 문자부터 끝까지 추출합니다.
- LOWER(SUBSTRING(name, 2)): 나머지 문자를 소문자로 변환합니다.
- CONCAT(...): 변환된 문자들을 합쳐 새로운 이름을 만듭니다.
- ORDER BY user_id: user_id 기준으로 오름차순 정렬합니다.
📌 실행 예제
📊 입력 데이터
Users 테이블
user_id | name |
1 | aLice |
2 | bOB |
쿼리 실행 결과
user_id | name |
1 | Alice |
2 | Bob |
🎯 결론
이 문제는 문자열 함수(UPPER, LOWER, SUBSTRING, CONCAT)를 활용하여 데이터를 가공하는 방법을 연습할 수 있습니다.
특히 이름 데이터의 형식을 통일해야 하는 경우 유용하게 적용할 수 있습니다.
더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀
728x90
반응형
'LeetCode' 카테고리의 다른 글
[LeetCode] 1741. Find Total Time Spent by Each Employee (0) | 2025.03.11 |
---|---|
[LeetCode] 1693. Daily Leads and Partners (0) | 2025.03.10 |
[LeetCode] 1587. Bank Account Summary 2 (0) | 2025.03.10 |
[LeetCode] 1407. Top Travellers (0) | 2025.03.06 |
[LeetCode] 1179. Reformat Department Table (0) | 2025.03.05 |