반응형
본문은 MySQL LEGNTH, CHAR_LENGTH 함수 개념 및 사용법, 예시를 통한 함수의 활용법을 담고 있습니다.
*예시: 해커랭크 SQL Weather Observation Station 5 문제
MySQL LENGTH, CHAR_LENGTH 함수
파이썬 LEN 함수처럼, 영문자의 Byte를 반환, 문자열 길이를 반환하는 LENGTH와 CHAR_LENGTH 함수가 있다.
영문에는 LENGTH 함수를 사용한다.
한글에는 CHAR_LENGTH함수를 사용하며, 이는 Byte를 고려하지 않고 문자 개수를 반환한다.
MySQL LENGTH, CHAR_LENGTH 함수 사용법과 예시
# LENGTH 함수
LENGTH('문자열');
# CHAR_LENGTH 함수
CHAR_LENGTH('문자열');
문자열은 단순 문자, 특수문자, 띄어쓰기 등을 고려한다.
따라서 'Love You' 사이의 띄어쓰기까지 계산하여 총 8Byte로, 8을 반환한다.
'안녕하세요! 반갑습니다.' 도 띄어쓰기와 '!', '.'까지 계산하여 총 13개 문자로, 13을 반환한다.
# LENGTH 함수 예시
SELECT LENGTH('Love You')
>> 8
# CHAR_LENGTH 함수 예시
SELECT LENGTH('안녕하세요! 반갑습니다.')
>> 13
MySQL LENGTH, CHAR_LENGTH 활용(해커랭크 Weather Observation Station 5)
LENGTH 함수를 해커랭크 SQL Weather Observation Station 5 문제로 더 알아보자.
이는 STATION 테이블에 가장 짧은, 가장 긴 CITY명을 가진 데이터를 출력하는 문제다.
만약 가장 짧은, 가장 긴 글자 수를 갖는 CITY가 각각 두 개 이상이면 알파벳순으로 정렬해서 하나만 출력해야 한다.
아래는 정답 쿼리이다.
요구하는 결과물 포맷을 보면 "가장 짧은 도시명, 글자 수, 가장 긴 도시명, 글자 수"이다.
때문에 가장 짧은 도시명을 구하는 쿼리와 가장 긴 도시명을 구하는 쿼리를 각각 작성했고 UNION으로 연결했다.
(SELECT CITY
, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) ASC, CITY ASC
LIMIT 1) # 길이가 오름차순이며 1개만 출력하기에, 가장 짧은 문자열
UNION
(SELECT CITY
, LENGTH(CITY)
FROM STATION
ORDER BY LENGTH(CITY) DESC, CITY ASC
LIMIT 1); # 길이가 내림차순이며 1개만 출력하기에, 가장 긴 문자열
정답 쿼리의 결과물이다.
CITY | LENGTH(CITY) |
Amo | 3 |
Marine On Saint Croix | 21 |
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL 평균 구하기(AVG, SUM) 유의점 정리 (0) | 2024.03.08 |
---|---|
MySQL Workbench 날짜 컬럼 데이터 타입과 날짜 형식 바꾸기 (0) | 2024.02.28 |
MySQL LIMIT OFFSET 사용법 예제 쉬운 정리 (0) | 2023.09.29 |
MySQL SELECT절 서브 쿼리(스칼라 서브 쿼리) 기초 정리 (0) | 2023.09.28 |
MySQL EXTRACT() 함수 사용법, 다양한 예제 정리 (0) | 2023.09.27 |