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;