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é?
3 Réponses :
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
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?
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.
Vous devez mettre
set describe_field_name_in_uppercase to on;
dans le SQL initial de votre Tableau.
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"
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