코딩테스트/SQL

[SQL] 특정 문자로 구분해서 문자열 나누기 (SUBSTRING+CHARINDEX)

박소민 2024. 10. 31. 10:54
특정 문자로 구분해서 문자열 나누기

 

  • 문자열 찾기 (CHARINDEX)
    • CHARINDEX(찾을 문자열, 대상문자열, (여러 개일때 해당번째수) ) 
    • 인덱스 1부터 시작
SELECT CHARINDEX( '123', '123456789123' ) -- 1
SELECT CHARINDEX( '123', '123456789123', 2) -- 10

 

  • 문자열 자르기(LEFT, RIGHT, SUBSTRING)
    • SUBSTRING(대상문자열, 시작인덱스, 길이)
SELECT LEFT( '123456', 3 ) -- '123'

SELECT RIGHT( '123456', 3 ) -- '456'

SELECT SUBSTRING( '123456', 3, 2 ) -- '34'

 

EX) 이메일 주소와 도메인 찾기
  • E_MAIL = abcd123@naver.com
    • 이메일주소: abcd123
    • 도메인주소: naver.com
  • CHARINDEX('@', E_MAIL) = 8
SELECT SUBSTRING(E_MAIL, 1, CHARINDEX('@', E_MAIL) - 1) AS EMAIL_ADDRESS
, SUBSTRING(E_MAIL, CHARINDEX('@', E_MAIL) + 1, LEN(E_MAIL)) AS EMAIL_DOMAIN

 

참고) https://cobi-98.tistory.com/47