Reserved and Limited Keywords

Snowflake SQL reserves all ANSI keywords (with the exception of type keywords such as CHAR, DATE, DECIMAL, etc.), as well as some additional keywords (ASC, DESC, MINUS, etc.) that are reserved by Oracle and other popular databases. Additionally, Snowflake reserves keywords REGEXP and RLIKE (which function like the ANSI reserved keyword LIKE) and SOME (which is a synonym for the ANSI reserved keyword ANY).

To avoid parsing ambiguities, Snowflake SQL also prohibits the use of keywords such as LEFT, OUTER, JOIN, etc. as table names or aliases in the FROM list, and the use of keywords such as TRUE, FALSE, CASE, etc. as column references in scalar expressions.

The following table provides the list of reserved keywords in Snowflake and keywords that are not strictly reserved, but have usage limitations:

Keyword Comment
ALL Reserved by ANSI.
ALTER Reserved by ANSI.
AND Reserved by ANSI.
ANY Reserved by ANSI.
AS Reserved by ANSI.
ASC Reserved by Oracle and others.
BETWEEN Reserved by ANSI.
BY Reserved by ANSI.
CASE Can’t be used as column reference in a scalar expression.
CAST Can’t be used as column reference in a scalar expression.
CHECK Reserved by ANSI.
CLUSTER Reserved by ANSI.
COLUMN Reserved by ANSI.
CONNECT Reserved by ANSI.
CREATE Reserved by ANSI.
CROSS Can’t be used as table name or alias in FROM.
CURRENT Reserved by ANSI.
DELETE Reserved by ANSI.
DESC Reserved by Oracle and others.
DISTINCT Reserved by ANSI.
DROP Reserved by ANSI.
ELSE Reserved by ANSI.
EXCLUSIVE Reserved by Oracle and others.
EXISTS Reserved by ANSI.
FALSE Can’t be used as column reference in a scalar expression.
FOR Reserved by ANSI.
FROM Reserved by ANSI.
FULL Can’t be used as table name or alias in FROM.
GRANT Reserved by ANSI.
GROUP Reserved by ANSI.
HAVING Reserved by ANSI.
IDENTIFIED Reserved by Oracle and others.
ILIKE Reserved by PostgreSQLn
IMMEDIATE Reserved by Oracle and others.
IN Reserved by ANSI.
INCREMENT Reserved by Oracle and others.
INNER Can’t be used as table name or alias in FROM.
INSERT Reserved by ANSI.
INTERSECT Reserved by ANSI.
INTO Reserved by ANSI.
IS Reserved by ANSI.
JOIN Can’t be used as table name or alias in FROM.
LATERAL Can’t be used as table name or alias in FROM.
LEFT Can’t be used as table name or alias in FROM.
LIKE Reserved by ANSI.
LOCK Reserved by Oracle and others.
LONG Reserved by Oracle and others.
MAXEXTENTS Reserved by Oracle and others.
MINUS Reserved by Oracle and others.
MODIFY Reserved by Oracle and others.
NATURAL Can’t be used as table name or alias in FROM.
NOT Reserved by ANSI.
NULL Reserved by ANSI.
OF Reserved by ANSI.
ON Reserved by ANSI.
OPTION Reserved by Oracle and others.
OR Reserved by ANSI.
ORDER Reserved by ANSI.
REGEXP Reserved by Snowflake.
RENAME Reserved by Oracle and others.
REVOKE Reserved by ANSI.
RIGHT Can’t be used as table name or alias in FROM.
RLIKE Reserved by Snowflake.
ROW Reserved by ANSI.
ROWS Reserved by ANSI.
SELECT Reserved by ANSI.
SET Reserved by ANSI.
SOME Reserved by Snowflake.
START Reserved by ANSI.
TABLE Reserved by ANSI.
THEN Reserved by ANSI.
TO Reserved by ANSI.
TRIGGER Reserved by ANSI.
TRUE Can’t be used as column reference in a scalar expression.
UNION Reserved by ANSI.
UNIQUE Reserved by ANSI.
UPDATE Reserved by ANSI.
USING Can’t be used as table name or alias in FROM.
VALUES Reserved by ANSI.
WHEN Can’t be used as column reference in a scalar expression.
WHENEVER Reserved by ANSI.
WHERE Reserved by ANSI.
WITH Reserved by ANSI.