SQL을 이용해서 데이터를 조작하는 것은 편리합니다. 하지만 문자열은 많이 다루지 않다보니, 필요할 때 막막한 경우가 있습니다. 파이썬으로 편리하게 문자열을 처리할 수 있지만, 데이터 양이 많으면 SQL로 하는 것이 훨씬 용이합니다.SQL에서 문자열 다루는 방법을 알아보겠습니다.
SQL에서 문자열 합치기, 자르기, 찾기, 바꾸기 하는 방법을 차례로 다루겠습니다. 실습을 위해 샘플 데이터셋이 필요합니다. 샘플 데이터는 이전에 활용했던 부동산 매매데이터를 이용했습니다. 부동산 매매데이터의 샘플은 아래와 같습니다.
SQL도 종류가 여러 개 있지만, 특별한 경우를 제외하고는 문법이 크게 다르지는 않습니다. 일단 여기서는 하둡(hadoop) 시스템에서 HIVE SQL을 이용하는 방법을 알아보았습니다.
1. 문자열 합치기
동(dong)과 아파트 이름(apt_nm)을 합쳐보겠습니다. 문자열을 합치는 방법은 여러가지가 있겠지만, concat함수를 이용해서 문자열을 합칠 수 있습니다. concat의 장점은 2개 이상의 문자열도 합칠 수 있다는 것입니다.
select concat(dong, apt_nm) as juso
from main.sale
위와 같이 실행하면 아래와 같이 동과 아파트 이름을 합칠 수 있습니다.
2. 문자열 자르기
day(거래일자)가 '11~20'으로 시작일과 종료일의 범위로 나타나 있습니다. 이에 시작일과 종료일을 나눠보겠습니다. 문자열을 나눌 때는 split이라는 함수를 사용합니다.
select split(day,'~')[0] as start_day, split(day,'~')[1] as end_day
from main.sale
아래와 같이 문자열 자르기를 했습니다.
3. 특정문자 위치찾기
특정문자 위치는 instr함수를 이용하여 찾을 수 있습니다. price에서 ','의 위치를 찾아보았습니다.
SELECT instr(price,',') as position
FROM main.sale
아래와 같이 문자열 위치를 찾을 수 있었습니다.
4. 문자 바꾸기
특정 문자를 바꾸는 함수는 replace함수를 이용하면 됩니다. price에서 ','가 있어 이를 ''(공백)으로 변경해 보았습니다.
SELECT replace(price, ',' , '') as new_price
FROM main.sale
아래와 같이 ','를 공백으로 변경하였습니다.
오늘은 이렇게 SQL에서 문자열을 합치고, 자르고, 찾고, 바꾸는 방법에 대해서 알아보았습니다. SQL마다 문법이 조금씩 다르니 위와 문법으로 실행이 되지 않은 경우, 사용하는 SQL문법에 맞는 함수를 찾아야 합니다. 함수를 이용하여 SQL에서도 쉽게 문자열을 다룰 수 있었습니다.
'데이터 > 데이터베이스' 카테고리의 다른 글
hive에서 원하는 순서대로 array 만드는 방법은?! (0) | 2022.03.10 |
---|---|
하이브 SQL NULL값 바꾸기 - NVL, COALESCE! (0) | 2022.02.01 |
SQL 칼럼 기준 텍스트 편집 - COLLECT_SET, COLLECT_LIST, CONCAT_WS?! (0) | 2022.02.01 |
하이브(hive) sql - 행(row)을 기준으로 최대값, 최소값 추출하는 방법! (0) | 2022.02.01 |
학습을 위한 가장 쉬운 하둡 설치 방법은? (0) | 2022.01.31 |
맥(mac)에서 하둡(hadoop) 설치하기 (0) | 2022.01.31 |
SQLite3 기본 문법-CREATE, SELCT, INSERT, DELETE (0) | 2022.01.28 |
MySQL 설치 및 사용법 알아보기 (0) | 2022.01.27 |