文字資料型別

Snowflake 的資料型別與函式

Jake Roach

Field Data Engineer

Snowflake 的資料型別與函式

Snowflake 標誌圖示

$$

全球超過 10,000 家組織使用 Snowflake

$$

    資料型別

    資料處理

    進階技巧

1 https://www.snowflake.com/en/company/overview/about-snowflake/
Snowflake 的資料型別與函式

Snowflake 的文字資料

文字資料 是 Snowflake 中最常見的型別之一

$$

  • 分類值
  • 訊息
  • 電話號碼
  • 非結構化文字
-- Text data might be categorical
'Software Engineer'

-- Messages are also text data 'Hello, World!'
-- As well as phone numbers '931-663-0164'
-- And even things like this! 'Taylormade,Titleist,Ping'
Snowflake 的資料型別與函式

文字資料型別

CREATE TABLE TABLE_NAME (

message VARCHAR(100),
phone_number TEXT,
brands STRING
);

使用 VARCHAR(...) 定義欄位

  • TEXT
  • STRING
              message     |  phone_number  |             brands                    
          --------------- | -------------- | ----------------------------          
           Hello, World!  |  931-663-0164  |  Taylormade, Titleist, Ping           
           Goodnight!     |  617-256-3086  |  Apple, Windows, Linux

儲存文字資料的欄位外觀可能很不同!

Snowflake 的資料型別與函式

描述 Snowflake 資料表

DESCRIBE TABLE <SCHEMA>.<table_name>;
  • 輸出每個欄位的資訊
  • nametypedefault

$$

在 Snowflake 資料表上執行 DESCRIBE TABLE 的結果。

Snowflake 的資料型別與函式

查詢中的文字資料

SELECT
    <field>,
    <another-field>,
    -- Can be used in a SELECT
    '<value>'
FROM SCHEMA.TABLE_NAME;
SELECT
    *
FROM SCHEMA.TABLE_NAME
-- Can be used in a WHERE clause
WHERE FIELD = '<value>';
  • 文字值可用在 SQL 查詢的不同部分

  • SELECT

  • WHERE
  • CASE

$$

'...' 單引號

  • 區分大小寫
Snowflake 的資料型別與函式

處理文字資料

函式 說明
LENGTH 取得文字值的字元數。
TRIM 移除字串開頭或結尾的一段字元序列。
RTRIM TRIM 相同,但只作用於字串右側。
LTRIM TRIM 相同,但只作用於字串左側。
SPLIT 以分隔符(如逗號)切割字串。
SEARCH 在字串中搜尋特定值。
CAST, :: 將其他型別轉為 VARCHAR
Snowflake 的資料型別與函式

一起來練習吧!

Snowflake 的資料型別與函式

Preparing Video For Download...