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_addressFROM STUDENTS.personal_info;
CREATE OR REPLACE FUNCTION <name> (-- Specify arguments and types <arg1> <type1>, <arg2> <type2>, ... )RETURN <type> -- Declare return typeAS $$ -- Define your function here $$
$$
$$
CREATE OR REPLACE FUNCTIONRETURN type$$ ... $$!CREATE OR REPLACE FUNCTION build_email_address(first_name TEXT, last_name TEXT, school_name TEXT)RETURN TEXTAS $$ 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