J'ai une table dans Snowflake avec la structure suivante:

| id | group | subgroup |
_________________________ 
| 1  | verst | burg     |
| 2  | travel| plane    |
| 3  | rest  | bet      |

Je n'ai besoin d'appeler que la colonne "groupe", j'ai donc essayé le code suivant:

select t2.group
from  table as t2

Mais l'erreur suivante se produit

SQL compilation error: syntax error line 1 at position 7 unexpected 'group'. syntax error line 2 at position 0 unexpected 'from'.

J'ai également essayé d'utiliser:

select group
from  table as t2

select "group"
from  table as t2

Mais j'obtiens toujours la même erreur. Je sais que je peux appeler la table entière en utilisant * mais la vraie table d'où j'obtiens ces données a beaucoup plus de colonnes et nous voulons afficher ces données dans un tableau de bord. De plus, je ne suis pas le propriétaire de la table car elle est remplie par un microservice, donc je ne peux pas changer les noms de colonnes et je ne peux pas modifier le processus de microservice. J'apprécierais toute suggestion.

0
Mario Alejandro Benítez López 16 avril 2020 à 04:46

2 réponses

Meilleure réponse

Étant donné que la table ne peut pas être créée sans guillemets, vous devez savoir comment elle a été créée pour savoir comment faire référence à la colonne. C'est-à-dire que le code de création était CREATE TABLE awsome ("GrOuP" string); là, vous devrez taper "GrOuP"

Il existe également un paramètre de session pour ignorer la casse entre guillemets qui peut aider. voir QUOTED_IDENTIFIERS_IGNORE_CASE

Mais par défaut, les choses sont en majuscules, essayez donc "GROUP"

2
Simeon Pilgrim 16 avril 2020 à 02:39

Mettre le groupe entre guillemets a bien fonctionné lorsque je l'ai essayé:

create or replace temporary table foo ( "group" string );

insert into foo values ('Hello world.');

select "group" from foo;
1
Greg Pavlik 16 avril 2020 à 01:52