# 문자열 함수

데이터가 문자열로 저장되어 있는 경우 사용할 수 있는 문자열 함수에 대해 이야기합니다

TIP

참고로 숫자처럼 보여도 데이터가 문자열로 저장되어 있을 수 있습니다. 자료형 변형은 CAST 함수 또는 SAFE_CAST를 사용해 바꿀 수 있습니다.

# SPLIT

단어를 특정 구분자를 기준으로 나누고 싶은 경우 사용하는 함수입니다.

예를 들면 "a, b, c"라고 하나의 컬럼에 저장된 경우 SPLIT 함수를 사용하면 a, b, c로 나눌 수 있습니다.

여러 내용을 한번에 저장하는 경우에 쉼표(,), 탭(\t)을 보편적으로 사용합니다.

  • 문법 : SPLIT(컬럼, 나눌 기준)
WITH letters AS (
  SELECT "" AS letter_group
  UNION ALL
  SELECT "a" AS letter_group
  UNION ALL
  SELECT "b c d" AS letter_group
)

SELECT 
  SPLIT(letter_group, " ") AS example
FROM letters
  • 1행과 2행은 SPLIT할 요소가 없어서 하나의 값만 나오고, 3행은 SPLIT 후 3개의 요소로 나뉩니다


# CONCAT

여러 컬럼의 문자열을 합치고 싶은 경우, 특정 문자열을 모두 붙이고 싶은 경우(예 : 숫자 + "명") 사용합니다.

  • 문법 : CONCAT(합칠 컬럼1, 합칠 컬럼2 …)
WITH items AS (
  SELECT "foo" AS item
  UNION ALL
  SELECT "bar" AS item
  UNION ALL
  SELECT "baz" AS item)

SELECT
  CONCAT(item, ' hi', '-zzsza') AS concat_result
FROM items


# STARTS_WITH, ENDS_WITH

문자열에서 처음 또는 마지막의 특정 단어가 포함되었는지 확인하고 싶은 경우 사용합니다.

  • 문법 : STARTS_WITH(컬럼, 찾을 단어)
  • 문법 : ENDS_WITH(컬럼, 찾을 단어)
WITH items AS (
  SELECT "foo" AS item
  UNION ALL
  SELECT "bar" AS item
  UNION ALL
  SELECT "baz" AS item
)

SELECT
  STARTS_WITH(item, "b") AS starts_with_result,
  ENDS_WITH(item, "o") AS ends_with_result
FROM items