2
votes

Comment conserver les majuscules et les minuscules dans un alias de colonne dans les résultats dans Redshift

Dans Redshift, nous essayons de donner des alias plus significatifs aux colonnes que nous renvoyons des requêtes lorsque nous importons les résultats dans TABLEAU, le problème est que RedShift transforme toutes les lettres en minuscules, c'est-à-dire à partir de "Date de l'événement "il retourne alors" date de l'événement ", une idée sur la façon de résoudre celle-ci pour conserver l'alias donné?

Requête

Nom de la colonne finale


3 commentaires

Cela est peut-être dû au client SQL que vous utilisez. Pouvez-vous essayer d'utiliser un autre client ou utiliser psql pour le voir revenir sous forme brute?


pouvez-vous renommer dans Tableau lui-même si vous êtes en mesure de le faire manuellement?


L'une des solutions consiste à utiliser jsonpath, voir plus de détails ici


3 Réponses :


-1
votes

J'étais en train de parcourir les documents AWS pour redshift et il semble que la fonction INTCAP peut résoudre votre cas d'utilisation

Pour référence => https://docs.aws.amazon .com / redshift / latest / dg / r_INITCAP.html

Brève description (copiée)

La fonction INITCAP rend la première lettre de chaque mot dans une chaîne en majuscule, et toutes les lettres suivantes sont en minuscules (ou à gauche). Par conséquent, il est important de comprendre quels caractères (autres que les espaces) fonctionnent comme séparateurs de mots. Un caractère séparateur de mot est tout caractère non alphanumérique, y compris les signes de ponctuation, les symboles et les caractères de contrôle. Tous les caractères suivants sont des séparateurs de mots:

! "# $% & '() * +, -. /:; <=>? @ [\] ^ _` {|} ~

Et dans votre cas, vous avez déclaré le nom du champ comme event_date qui se convertira en Event_Date.

Et ensuite, vous pouvez utiliser la fonction REMPLACER pour remplacer le trait de soulignement '_'

Pour référence => https://docs.aws.amazon .com / redshift / latest / dg / r_REPLACE.html


1 commentaires

Merci @Bhavesh, c'est vraiment utile pour les résultats d'une colonne, le problème est que j'ai besoin du titre de la colonne pour avoir des lettres majuscules, des idées à ce sujet?



2
votes

Non, vous ne pouvez pas faire cela dans Redshift. toutes les colonnes sont uniquement en minuscules.

Vous ne pouvez appliquer les majuscules qu'en utilisant

set describe_field_name_in_uppercase to on;

Voir également les exemples ici https://docs.aws.amazon.com/redshift/latest/dg/r_names.html vous pouvez voir que les caractères majuscules sont renvoyés en minuscules. et il dit que "les identifiants sont insensibles à la casse et sont pliés en minuscules dans la base de données"

Vous pouvez bien sûr renommer la colonne pour inclure des majuscules dans Tableau.


0 commentaires

0
votes

Vous devez mettre

set describe_field_name_in_uppercase to on; 

dans le SQL initial de votre Tableau.


1 commentaires

Cela ne fonctionne pas réellement, cela définit les noms des colonnes uniquement en majuscules, donc dans le cas de l'exemple d'OP: "EVENT DATE"