Coding Planet

leetcode > 1667. Fix Names in a Table 본문

SQL

leetcode > 1667. Fix Names in a Table

jhj.sharon 2023. 2. 6. 16:58
반응형

✨ 문제: 1667. Fix Names in a Table

https://leetcode.com/problems/fix-names-in-a-table/description/?envType=study-plan&id=sql-i 

 

Fix Names in a Table - LeetCode

Fix Names in a Table - Table: Users +----------------+---------+ | Column Name | Type | +----------------+---------+ | user_id | int | | name | varchar | +----------------+---------+ user_id is the primary key for this table. This table contains the ID and

leetcode.com

💻코드

SELECT user_id, CONCAT(UPPER(SUBSTR(name, 1,1)), LOWER(SUBSTR(name, 2))) 
AS name
FROM users
ORDER BY
user_id ASC

 

👩‍💻 풀이 방법

  • 문자열의 첫번째글자를 대문자로, 나머지 문자를 소문자로 바꾸는 문제이다.
  • 먼저 하나의 필드 데이트의 일부를 읽는 SUBSTR() 함수로 NAME의 문자열을 쪼개준다. 이 때, SUBSTR(컬럼명, 문자인덱스, 문자의 길이) 형식을 이용하는데 문자의 길이를 지정하지 않으면 해당 문자 인덱스부터 문자열의 마지막까지 전체를 지정한다. 
  • SUBSTR()함수를 통해 문자열을 분리한 다음 해당 문자열을 각각 대문자와 소문자로 변환하는 UPPER(), LOWER()함수를 사용한다.
  • 그 다음 SUBSTR()로 쪼개주었던 문자열을 다시 합쳐주는 CONCAT()를 이용하여 의도한 형식의 NAME으로 바꿔준다.

🔔 느낀점

  • 모든 함수를 다 알수는 없지만 자주 사용되는 함수의 경우 의식적으로 외워두어야 겠다는 생각이 들었다.
  • 자꾸 디테일에서 실수가 나는데 SUBSTR에서 문자열의 인덱스는 1에서 시작함에도 불구하고 처음 SQL문을 만들 때 인덱스가 0에서 시작한다고 착각하여 틀렸었다. 
반응형
Comments