Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Quando si esegue le query in Athena che includono parole chiave riservate, devi racchiuderli tra caratteri speciali. Utilizza gli elenchi in questo argomento per verificare quali parole chiave sono riservate in Athena.
Per impostare il carattere escape di parole chiave riservate in istruzioni DDL, occorre racchiuderle tra apici retroversi (`). Per impostare il carattere escape di parole chiave riservate in istruzioni SQL SELECT
e nelle query su viste, occorre racchiuderle tra doppie virgolette ('').
Parole chiave riservate a cui sfuggire nelle istruzioni DDL
Athena utilizza il seguente elenco di parole chiave riservate nelle sue istruzioni DDL. Se le utilizzi senza importare il carattere escape, Athena emette un errore. Per impostarne il carattere escape, racchiudile tra apici retroversi (`).
Non è possibile utilizzare parole chiave riservate DDL come nomi di identificatori in istruzioni DDL senza racchiuderle tra apici retroversi (`).
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
Parole chiave riservate da cui scappare nelle istruzioni SQL SELECT
Athena utilizza il seguente elenco di parole chiave riservate nelle istruzioni SQL SELECT
e nelle query su viste.
Se si utilizzano queste parole chiave come identificatori, è necessario racchiuderle tra doppie virgolette (") nella istruzioni di query.
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
Esempi di query con parole riservate
La query nell’esempio riportato di seguito utilizza gli apici retroversi (`) come caratteri escape delle parole chiave riservate associate al DDL partizione e data, utilizzate per un nome di tabella e per uno dei nomi di colonna:
CREATE EXTERNAL TABLE `partition`
(
`date`
INT,
col2 STRING
)
PARTITIONED BY (year STRING)
STORED AS TEXTFILE
LOCATION 's3://amzn-s3-demo-bucket/test_examples/';
Le seguenti query di esempio includono un nome di colonna contenente le parole chiave riservate correlate al DDL nelle istruzioni ALTER TABLE ADD PARTITION
e ALTER TABLE DROP
PARTITION
. Le parole chiave DDL riservate vengono racchiuse tra apici retroversi (`):
ALTER TABLE test_table
ADD PARTITION (`date`
= '2018-05-14')
ALTER TABLE test_table
DROP PARTITION (`partition`
= 'test_partition_value')
La seguente query di esempio include una parola chiave riservata (end) come identificatore in un'istruzione SELECT
. Il carattere escape della parola chiave è impostato racchiudendola tra doppie virgolette:
SELECT *
FROM TestTable
WHERE "end" != nil;
La seguente query di esempio include una parola chiave riservata (first) in un'istruzione SELECT
. Il carattere escape della parola chiave è impostato racchiudendola tra doppie virgolette:
SELECT "itemId"."first"
FROM testTable
LIMIT 10;