Reservierte Schlüsselwörter in Abfragen umgehen - Amazon Athena

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Reservierte Schlüsselwörter in Abfragen umgehen

Wenn Sie Abfragen in Athena ausführen, die reservierte Schlüsselwörter enthalten, müssen Sie sie als Escapezeichen mit Sonderzeichen umgeben, um ihre Verarbeitung zu verhindern. Überprüfen Sie anhand der Listen in diesem Thema, welche Schlüsselwörter in Athena reserviert sind.

Um reservierte Schlüsselwörter in DDL Anweisungen zu umgehen, fügen Sie sie in Backticks (`) ein. Um reservierte Schlüsselwörter in SQL SELECT Anweisungen und Abfragen von Ansichten zu maskieren, setzen Sie sie in doppelte Anführungszeichen („).

Reservierte Schlüsselwörter für Escape-Befehle in Anweisungen DDL

Athena verwendet in ihren DDL Aussagen die folgende Liste reservierter Schlüsselwörter. Wenn Sie sie verwenden, ohne sie mit einem Escapezeichen zu versehen, gibt Athena eine Fehlermeldung aus. Um sie mit Escapezeichen zu versehen, schließen Sie sie in einfache umgekehrte Anführungszeichen (`) ein.

Sie können DDL reservierte Schlüsselwörter nicht als Bezeichnernamen in DDL Anweisungen verwenden, ohne sie in Backticks (`) einzuschließen.

ALL, ALTER, AND, ARRAY, AS, AUTHORIZATION, BETWEEN, BIGINT, BINARY, BOOLEAN, BOTH, BY, CASE, CASHE, CAST, CHAR, COLUMN, CONF, CONSTRAINT, COMMIT, CREATE, CROSS, CUBE, CURRENT, CURRENT_DATE, CURRENT_TIMESTAMP, CURSOR, DATABASE, DATE, DAYOFWEEK, DECIMAL, DELETE, DESCRIBE, DISTINCT, DIV, DOUBLE, DROP, ELSE, END, EXCHANGE, EXISTS, EXTENDED, EXTERNAL, EXTRACT, FALSE, FETCH, FLOAT, FLOOR, FOLLOWING, FOR, FOREIGN, FROM, FULL, FUNCTION, GRANT, GROUP, GROUPING, HAVING, IF, IMPORT, IN, INNER, INSERT, INT, INTEGER, INTERSECT, INTERVAL, INTO, IS, JOIN, LATERAL, LEFT, LESS, LIKE, LOCAL, MACRO, MAP, MORE, NONE, NOT, NULL, NUMERIC, OF, ON, ONLY, OR, ORDER, OUT, OUTER, OVER, PARTIALSCAN, PARTITION, PERCENT, PRECEDING, PRECISION, PRESERVE, PRIMARY, PROCEDURE, RANGE, READS, REDUCE, REGEXP, REFERENCES, REVOKE, RIGHT, RLIKE, ROLLBACK, ROLLUP, ROW, ROWS, SELECT, SET, SMALLINT, START,TABLE, TABLESAMPLE, THEN, TIME, TIMESTAMP, TO, TRANSFORM, TRIGGER, TRUE, TRUNCATE, UNBOUNDED,UNION, UNIQUEJOIN, UPDATE, USER, USING, UTC_TIMESTAMP, VALUES, VARCHAR, VIEWS, WHEN, WHERE, WINDOW, WITH

Reservierte Schlüsselwörter zur Escape-Funktion in Anweisungen SQL SELECT

Athena verwendet die folgende Liste reservierter Schlüsselwörter in SQL SELECT Aussagen und Abfragen zu Ansichten.

Wenn Sie diese Schlüsselwörter als Bezeichner verwenden, müssen Sie sie in Ihren Abfrageanweisungen in doppelte Anführungszeichen (") einschließen.

ALTER, AND, AS, BETWEEN, BY, CASE, CAST, CONSTRAINT, CREATE, CROSS, CUBE, CURRENT_CATALOG, CURRENT_DATE, CURRENT_PATH, CURRENT_SCHEMA, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, DEALLOCATE, DELETE, DESCRIBE, DISTINCT, DROP, ELSE, END, ESCAPE, EXCEPT, EXECUTE, EXISTS, EXTRACT, FALSE, FIRST, FOR, FROM, FULL, GROUP, GROUPING, HAVING, IN, INNER, INSERT, INTERSECT, INTO, IS, JOIN, JSON_ARRAY, JSON_EXISTS, JSON_OBJECT, JSON_QUERY, JSON_TABLE, JSON_VALUE, LAST, LEFT, LIKE, LISTAGG, LOCALTIME, LOCALTIMESTAMP, NATURAL, NORMALIZE, NOT, NULL, OF, ON, OR, ORDER, OUTER, PREPARE, RECURSIVE, RIGHT, ROLLUP, SELECT, SKIP, TABLE, THEN, TRIM, TRUE, UESCAPE, UNION, UNNEST, USING, VALUES, WHEN, WHERE, WITH

Beispiele für Abfragen mit reservierten Wörtern

Die Abfrage im folgenden Beispiel verwendet Backticks (`), um die DDL zugehörigen reservierten Schlüsselwörter partition und date zu maskieren, die für einen Tabellennamen und einen der Spaltennamen verwendet werden:

CREATE EXTERNAL TABLE `partition` ( `date` INT, col2 STRING ) PARTITIONED BY (year STRING) STORED AS TEXTFILE LOCATION 's3://amzn-s3-demo-bucket/test_examples/';

Die folgenden Beispielabfragen enthalten einen Spaltennamen, der die zugehörigen DDL reservierten Schlüsselwörter in ALTER TABLE ADD PARTITION und ALTER TABLE DROP PARTITION -Anweisungen enthält. Die DDL reservierten Schlüsselwörter sind in Backticks (`) eingeschlossen:

ALTER TABLE test_table ADD PARTITION (`date` = '2018-05-14')
ALTER TABLE test_table DROP PARTITION (`partition` = 'test_partition_value')

Die Abfrage im folgenden Beispiel enthält ein reserviertes Schlüsselwort (End) als Bezeichner in einer SELECT-Anweisung. Das Schlüsselwort ist als Escapezeichen mit doppelten Anführungszeichen versehen:

SELECT * FROM TestTable WHERE "end" != nil;

Die Abfrage im folgenden Beispiel enthält ein reserviertes Schlüsselwort (first) als Bezeichner in einer SELECT-Anweisung. Das Schlüsselwort ist als Escapezeichen mit doppelten Anführungszeichen versehen:

SELECT "itemId"."first" FROM testTable LIMIT 10;