SQL에서 문자열 다루기 4종 - 합치기,자르기,찾기,바꾸기

2021. 11. 25. 10:36

SQL을 이용해서 데이터를 조작하는 것은 편리하다. 하지만 문자열은 많이 다루지 않다보니, 필요할 때 막막할 때가 있다. 파이썬으로도 편리하게 문자열을 처리할 수 있지만, 데이터 양이 많으면 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에서도 쉽게 문자열을 다룰 수 있었다.

댓글()