Usé AWS Glue Console para crear una tabla desde el depósito S3 en Athena. Puede ver una parte relevante en la captura de pantalla anterior. Oculté el nombre de la columna, así que suponga que el nombre de la columna es "a test column" . Me gustaría seleccionar los registros con valor D en esa columna. La consulta que traté de ejecutar es:
SELECT * FROM table WHERE "a test column" = "D" No se devuelve nada. También intenté usar IS en lugar de = , así como rodear D con comillas simples en lugar de comillas dobles dentro de la cláusula WHERE :
-- Tried this WHERE "a test column" = 'D' -- Tried this WHERE "a test column" IS "D" -- Tried this WHERE "a test column" IS 'D'Nada funciona. ¿Alguien puede ayudar? Gracias.
El mensaje de error que tengo es
Entrada no coincidente 'dónde' esperando (servicio: amazon athena; código de estado: 400; código de error: excepción de solicitud no válida; ID de solicitud: 8f2f7c17-8832-4e34-8fb2-a78855e3c17d)
Problema con la sintaxis de consulta. Use comillas simples (') cuando se refiera a valores de cadena, porque las comillas dobles se refieren al nombre de una columna en su tabla.
SELECT * FROM table WHERE "column_name" = 'D'La respuesta inesperada (también disculpe si no lo dije claramente en la publicación original) es que no puedo agregar "límite de 200" delante de la cláusula where. Tengo que agregarlo al final. Espero que ayude a otros.