Retourner une Valeur Booléenne TRUE ou FALSE dans le Sélectionner (PostgreSQL/pgAdmin)
Dans PostgreSQL (version 9.4, pgAdmin3), lorsque vous sélectionnez un tableau de booléens de la colonne de la sortie des données montre que 't' ou 'f'. Je voudrais cast/convertir des valeurs booléennes TRUE ou FALSE, sans écrire de CAS de déclarations ou de faire des JOINTURES etc.
BTW, selon PostgreSQL propre la documentation ce comportement n'est pas le standard SQL.
Les mots-clés TRUE et FALSE sont des privilégiés (SQL-conformes).
PS: Cela se produit uniquement lors de l'utilisation de l'Éditeur de SQL dans pgAdmin. Utiliser pgAdmin explorateur d'objets, forer vers le bas à la même table, clic droit, afficher les données, voir Top 100 lignes, la même colonne booléenne montre comme VRAI ou FAUX, comme prévu/standard.
Est - il Correct, juste une question d'esthétique. J'ai ajouté pgAdmin à titre de ma question à clarifier. Également l'affichage est précisément dans pgAdmin de l'Éditeur SQL. Donc je suppose que c'juste une demande d'amélioration dans la prochaine version de pgAdmin - pour être cohérent avec leur propre documentation et de la norme SQL 😉
OriginalL'auteur Net Dawg | 2015-12-23
Vous devez vous connecter pour publier un commentaire.
Si tout ce que vous voulez montrer, c'est la traduction littérale
TRUE
ouFALSE
, vous pouvez utiliser le cas des déclarations comme vous l'a proposé. Depuis PostgreSQL traiteTRUE
,true
,yes
,on
,y
,t
et1
comme vrai, j'avais le contrôle de la façon dont je voulais que la sortie de l'air.Clause where peut être écrit comme:
(Ma recommandation est la même que PostgreSQL - utilisation true)
Lors de la sélection, même si l'on peut hésiter à utiliser le cas des déclarations, je voudrais encore vous recommandons de le faire pour avoir le contrôle sur votre sortie de chaîne littérale.
Votre requête devrait ressembler à ceci:
SQLFiddle exemple: http://sqlfiddle.com/#!15/4764d/1
Oh oui, vous avez parié. J'ai ajouté un exemple
select *, CAS LORSQUE l'actif EST VRAI, ALORS le "VRAI" AUTRE "FAUSSE" FIN de tablename (la virgule après le * est important)
Oui, vous avez absolument raison. La virgule entre * et le cas est important.
Cette réponse reçu un downvote. Il serait bon de savoir pourquoi, et ce qui peut être amélioré; je serais heureux d'ajouter des améliorations.
OriginalL'auteur zedfoxus
Une distribution simple à
text
va faire le travail (sauf si vous avez besoin de majuscules, orthographe):D'autre, le texte de la représentation dépend de la bibliothèque et de client que vous utilisez pour vous connecter. JDBC par exemple rend
boolean
valeurs "vrai" /"faux" de toute façon:SQL Violon.
Vous allez adorer ce changement dans Postgres 9.5 (citant le notes de version):
Gras c'est moi qui souligne.
OriginalL'auteur Erwin Brandstetter