Xử lý dữ liệu văn bản

Kiểu dữ liệu và Hàm trong Snowflake

Jake Roach

Field Data Engineer

Tìm độ dài (LENGTH) của chuỗi

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 trả về số ký tự trong một chuỗi văn bản

$$

  • Bao gồm khoảng trắng
  • VARCHAR, TEXT, STRING, v.v.
  • LEN đồng nghĩa với LENGTH
Kiểu dữ liệu và Hàm trong Snowflake

TRIM

Loại bỏ ký tự ở đầu và cuối giá trị văn bản

$$

  • Thường dùng để xóa khoảng trắng
  • Không phân biệt chữ hoa/thường
  • LTRIMRTRIM tương ứng
SELECT
    <field>,

    -- Remove characters at the
    -- beginning or end of the column
    TRIM(<1>, <2>)

FROM ...;

<1>: cột hoặc giá trị sẽ được cắt bỏ

<2>: tùy chọn, mẫu cần loại khỏi đầu/cuối; mặc định là khoảng trắng ' '

Kiểu dữ liệu và Hàm trong 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
Kiểu dữ liệu và Hàm trong Snowflake

SPLIT

Chia văn bản thành một mảng giá trị dựa trên ký tự phân tách

$$

  • Kiểu trả về là ARRAY
  • Có thể dùng cú pháp ngoặc để lấy giá trị

$$

$$

<1>: cột để SPLIT

<2>: ký tự phân tách

SELECT
    <field>,

    -- SPLIT the field, use bracket-
    -- notation to retrieve first chunk
    SPLIT(<1>, <2>),
    SPLIT(<1>, <2>)[X]

FROM ...;
       Math,Science,Art,Reading
                 ...
 ['Math', 'Science', 'Art', 'Reading']
Kiểu dữ liệu và Hàm trong Snowflake

SPLIT

SELECT
    collaborators,

SPLIT(collaborators, ',') AS all_collaborators,
SPLIT(collaborators, ',')[0] AS primary_artist -- Return the first collaborator
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
Kiểu dữ liệu và Hàm trong Snowflake

CONCAT

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

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

FROM ...;

Có thể ghép hai hoặc nhiều giá trị văn bản lại với nhau

$$

  • Số lượng tùy ý, ngăn cách bằng ,
  • Cần chỉ rõ khoảng trắng giữa ký tự
  • Hữu ích để ghép họ và tên
Kiểu dữ liệu và Hàm trong Snowflake

CONCAT

SELECT
    song_name, artist_name,

    -- Concatenate three text values together
    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
Kiểu dữ liệu và Hàm trong Snowflake

Vamos praticar!

Kiểu dữ liệu và Hàm trong Snowflake

Preparing Video For Download...