SQL/기본 지식

[엑셀보다 쉽고 빠른 SQL] - 3주차(Replace, Substr, Concat, IF, Case When, Cast)

뜌비뜌바밥 2024. 8. 7. 16:39
데이터 가공하기 - 문자 데이터

 

1. REPLACE : 기존의 데이터 값 중 일부만 다른 이름으로 대체 하는 경우 사용

SELECT REPLACE(컬럼명, 기존값, 변경값)
FROM 테이블명

 

2. SUBSTR : 엑셀에서 left, right 함수와 유사. 기존의 데이터 값에서 몇 글자만 추출하고 싶은 경우

SELECT SUBSTR(조회 할 컬럼명, 시작 위치, 글자 수)
FROM 테이블명

 

3. CONCAT : 기호도 추가하고 이름도 바꾸고 기존 이름도 사용하고 여러가지로 사용이 가능함

컬럼, 한글, 영어, 숫자, 기타 특수문자 모두 붙일 수 있으나, 한글과 특수문자 사용 시에는 따옴표('') 필수

# CONCAT
SELECT CONCAT[붙이고 싶은 값1, 2, 3, 4, ......]
FROM TABLE

#[지역명] RESTAURANT_NAME으로 형태로 변수를 만들고 싶을 때
SELECT CONCAT('[','SUBSTRING(ADDR,1,2),']',restaurant_name) "음식점 이름"
FROM TABLE

 

4. IF : 흔히 엑셀에서 사용하는 if 함수와 동일함
if 함수 안에도 다양한 함수 사용 가능 ex) replace, substr 등

다른 함수 사용 시에도, if 함수 사용 가능 

#기본 구조
SELECT IF(조건, 조건 충족 시 값, 조건 미 충족 시 값)
FROM 테이블명

#활용
SELECT SUBSTRING(IF(EMAIL LIKE '%GAMIL%', REPLACE(EMAIL, 'GMAIL', '@gamil'),email),10)

 

5. CASE WHEN : if와 유사한 기능으로, 여러 개의 조건으로 행의 값을 변경하고 싶을 때 사용함

SELECT CASE WHEN 조건1 THEN 조건1에 부합할 때의 값(수식)
            WHEN 조건2 THEN 조건2에 부합할 때의 값(수식)
            ELSE 위 조건에 부합하지 않을 때 값(수식) END "새로운 변수명"

 

6. CAST : 데이터 형식(숫자, 문자 등) 변경해주는 함수. 숫자 또는 문자 형식으로 변경 가능

#숫자로 변경
cast(rating as decimal)

#문자로 변경
cast(order_id as char)