Data Types and Functions in Snowflake
Jake Roach
Field Data Engineer
"Package" complex logic into a single, reusable function
$$
$$
$$
... let's take a closer look!
SELECT
first_name, last_name, school_name,
CONCAT(
first_name,
'.',
last_name,
'@',
school_name,
'.com'
)
FROM STUDENTS.personal_info;
SELECT first_name, last_name, school_name,
-- Reusable, easy to read build_email_address( first_name, last_name, school_name ) AS email_address
FROM STUDENTS.personal_info;
CREATE OR REPLACE FUNCTION <name> (
-- Specify arguments and types <arg1> <type1>, <arg2> <type2>, ... )
RETURN <type> -- Declare return type
AS $$ -- Define your function here $$
$$
$$
CREATE OR REPLACE FUNCTION
RETURN
type$$ ... $$
!CREATE OR REPLACE FUNCTION build_email_address(
first_name TEXT, last_name TEXT, school_name TEXT
)
RETURN TEXT
AS $$ CONCAT(LOWER(first_name), '.', LOWER(last_name), '@', LOWER(school_name), '.com') $$;
SELECT
first_name, last_name, school_name,
build_email_address(first_name, last_name, school_name) AS email_address
FROM STUDENTS.personal_info;
first_name | last_name | school_name | email_address
------------ | ----------- | ------------- | ----------------------------
Ryan | Cohen | Harvard | [email protected]
Tatiana | Doyle | Stanford | [email protected]
Pankaj | Pandey | MIT | [email protected]
Jake | Roach | Purdue | [email protected]
Data Types and Functions in Snowflake