텍스트 데이터 다루기

Snowflake의 데이터 타입과 함수

Jake Roach

Field Data Engineer

문자열의 LENGTH 구하기

LENGTH(<field>)
SELECT
    song_name,
    LENGTH(song_name) AS characters
FROM MUSIC.songs;
       song_name    |  characters
   ---------------- | -----------
     Levon          |      5     
     Tiny Dancer    |      11
     Rocket Man     |      10

LENGTH는 문자열의 문자 수를 반환합니다

$$

  • 공백 포함
  • VARCHAR, TEXT, STRING 등에 사용
  • LENLENGTH와 동의어
Snowflake의 데이터 타입과 함수

TRIM

텍스트의 앞뒤 문자들을 제거합니다

$$

  • 가장 흔히 공백 제거에 사용
  • 대소문자 구분 없음
  • LTRIM, RTRIM도 있음
SELECT
    <field>,

    -- 컬럼 시작/끝 문자 제거
    TRIM(<1>, <2>)
FROM ...;

<1>: 트리밍할 컬럼 또는 값

<2>: 선택 사항, 시작/끝에서 제거할 패턴. 없으면 ' '(공백)

Snowflake의 데이터 타입과 함수

TRIM

SELECT
    song_long_name,
    TRIM(song_long_name, '(Remastered)') AS trimmed_song_name
FROM MUSIC.songs;
TRIM(song_long_name, '(Remastered)')
                song_long_name          |     trimmed_song_name
           ---------------------------- | --------------------------
             (Remastered) Piano Man     |      Piano Man
             Ticking (Remastered)       |      Ticking
             Come Sail Away             |      Come Sail Away
Snowflake의 데이터 타입과 함수

SPLIT

구분자로 텍스트를 값의 배열로 분할합니다

$$

  • 반환 타입은 ARRAY
  • 대괄호 표기로 값 조회 가능

$$

$$

<1>: SPLIT할 컬럼

<2>: 분할에 사용할 구분자

SELECT
    <field>,

    -- 필드를 SPLIT하고 대괄호 표기로
    -- 첫 조각을 조회
    SPLIT(<1>, <2>),
    SPLIT(<1>, <2>)[X]

FROM ...;
       Math,Science,Art,Reading
                 ...
 ['Math', 'Science', 'Art', 'Reading']
Snowflake의 데이터 타입과 함수

SPLIT

SELECT
    collaborators,

SPLIT(collaborators, ',') AS all_collaborators,
SPLIT(collaborators, ',')[0] AS primary_artist -- 첫 번째 공동 작업자 반환
FROM MUSIC.songs;
          collaborators       |          all_collaborators         |  primary_artist
   -------------------------- | ---------------------------------- | ---------------
   Queen, David Bowie         |  ['Queen', ' David Bowie']         |  Queen
   Elton John, Kiki Dee       |  ['Elton John', ' Kiki Dee']       |  Elton John
   Carly Simon, James Taylor  |  ['Carly Simon', ' James Taylor']  |  Carly Simon
Snowflake의 데이터 타입과 함수

CONCAT

SELECT
    <field>,
    <another-field>,
    <third-field>,

    CONCAT(
        <field>, 
        <another-field>,
        ' ',
        <third-field>
    )

FROM ...;

두 개 이상의 텍스트 값을 함께 연결합니다

$$

  • 값은 ,로 구분해 임의 개수 가능
  • 공백은 직접 지정해야 함
  • 이름·성 결합에 유용
Snowflake의 데이터 타입과 함수

CONCAT

SELECT
    song_name, artist_name,

    -- 세 개의 텍스트 값을 연결
    CONCAT(song_name, ' is written by ', artist_name) AS description

FROM MUSIC.songs;
      song_name    |   artist_name  |         description        
 ----------------- | -------------- | --------------------------------------------
 Night Moves       |  Bob Seger     |  Night Moves is written by Bob Seger
 Cracklin' Rosie   |  Neal Diamond  |  Cracklin' Rosie is written by Neal Diamond
Snowflake의 데이터 타입과 함수

Ayo berlatih!

Snowflake의 데이터 타입과 함수

Preparing Video For Download...