保留和受限关键字

Snowflake SQL 保留所有 ANSI 关键字(CHAR、DATE、DECIMAL 等类型的关键字除外),以及由其他流行数据库保留的一些额外关键字(ASC、DESC、MINUS 等)。此外,Snowflake 保留关键字 REGEXP 和 RLIKE(其功能类似于 ANSI 保留关键字 LIKE)和 SOME(这是 ANSI 保留关键字 ANY 的同义词)。

为避免解析歧义,Snowflake SQL 还禁止将 LEFT、OUTER、JOIN 等关键字用作 FROM 列表中的表名或别名,也禁止将 TRUE、FALSE、CASE 等关键字用作标量表达式的列引用。

下表列出了 Snowflake 中保留的关键字,以及未严格保留但有使用限制的关键字:

关键字

注释

A

ACCOUNT

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

ALL

由 ANSI 保留。

ALTER

由 ANSI 保留。

AND

由 ANSI 保留。

ANY

由 ANSI 保留。

AS

由 ANSI 保留。

B

BETWEEN

由 ANSI 保留。

BY

由 ANSI 保留。

C

CASE

不能用作标量表达式中的列引用。

CAST

不能用作标量表达式中的列引用。

CHECK

由 ANSI 保留。

COLUMN

由 ANSI 保留。

CONNECT

由 ANSI 保留。

CONNECTION

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

CONSTRAINT

不能用作 CREATE TABLE DDL 中的列名。

CREATE

由 ANSI 保留。

CROSS

不能用作 FROM 子句中的表名或别名。

CURRENT

由 ANSI 保留。

CURRENT_DATE

不能用作列名(由 ANSI 保留)。

CURRENT_TIME

不能用作列名(由 ANSI 保留)。

CURRENT_TIMESTAMP

不能用作列名(由 ANSI 保留)。

CURRENT_USER

不能用作列名(由 ANSI 保留)。

D

DATABASE

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

DELETE

由 ANSI 保留。

DISTINCT

由 ANSI 保留。

DROP

由 ANSI 保留。

E

ELSE

由 ANSI 保留。

EXISTS

由 ANSI 保留。

F

FALSE

不能用作标量表达式中的列引用。

FOLLOWING

由 ANSI 保留。

FOR

由 ANSI 保留。

FROM

由 ANSI 保留。

FULL

不能用作 FROM 子句中的表名或别名。

G

GRANT

由 ANSI 保留。

GROUP

由 ANSI 保留。

GSCLUSTER

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

H

HAVING

由 ANSI 保留。

I

ILIKE

由 Snowflake 保留。

IN

由 ANSI 保留。

INCREMENT

由 Snowflake 和其他数据库保留。

INNER

不能用作 FROM 子句中的表名或别名。

INSERT

由 ANSI 保留。

INTERSECT

由 ANSI 保留。

INTO

由 ANSI 保留。

IS

由 ANSI 保留。

ISSUE

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

J

JOIN

不能用作 FROM 子句中的表名或别名。

L

LATERAL

不能用作 FROM 子句中的表名或别名。

LEFT

不能用作 FROM 子句中的表名或别名。

LIKE

由 ANSI 保留。

LOCALTIME

不能用作列名(由 ANSI 保留)。

LOCALTIMESTAMP

不能用作列名(由 ANSI 保留)。

M

MINUS

由 Snowflake 和其他数据库保留。

N

NATURAL

不能用作 FROM 子句中的表名或别名。

NOT

由 ANSI 保留。

NULL

由 ANSI 保留。

O

OF

由 ANSI 保留。

ON

由 ANSI 保留。

OR

由 ANSI 保留。

ORDER

由 ANSI 保留。

ORGANIZATION

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

Q

QUALIFY

由 Snowflake 保留。

R

REGEXP

由 Snowflake 保留。

REVOKE

由 ANSI 保留。

RIGHT

不能用作 FROM 子句中的表名或别名。

RLIKE

由 Snowflake 保留。

ROW

由 ANSI 保留。

ROWS

由 ANSI 保留。

S

SAMPLE

由 ANSI 保留。

SCHEMA

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

SELECT

由 ANSI 保留。

SET

由 ANSI 保留。

SOME

由 Snowflake 保留。

START

由 ANSI 保留。

T

TABLE

由 ANSI 保留。

TABLESAMPLE

由 ANSI 保留。

THEN

由 ANSI 保留。

TO

由 ANSI 保留。

TRIGGER

由 ANSI 保留。

TRUE

不能用作标量表达式中的列引用。

TRY_CAST

不能用作标量表达式中的列引用。

U

UNION

由 ANSI 保留。

UNIQUE

由 ANSI 保留。

UPDATE

由 ANSI 保留。

USING

不能用作 FROM 子句中的表名或别名。

V

VALUES

由 ANSI 保留。

VIEW

不能用作 SHOW 命令中的标识符(例如“SHOW ... IN <identifier>”)。

W

WHEN

不能用作标量表达式中的列引用。

WHENEVER

由 ANSI 保留。

WHERE

由 ANSI 保留。

WITH

由 ANSI 保留。

语言: 中文