Bonsoir,
Ça tombe bien, je me posais cette question de la concaténation de 2
champs pour créer un nouveau champ et merci, ça fonctionne bien chez moi.
Par contre, question induite, je voudrais en fait modifier ma table
d'origine pour qu'elle ait maintenant cette nouvelle colonne en
supplément. Comment donc créer une nouvelle table (qui remplacera celle
d'origine) à partir de la requête, ça doit être évident, mais mes
connaissances en SQL sont encore assez réduites ... Par contre, je
subodore que l'utilisation des vues doit permettre de faire ce que je
veux, mais y a-t-il un tutoriel ou how-to qui parlerait de l'utilisation
des vues ?
Merci d'avance
Éric
Docgranville a écrit :
Bonsoir,
Dans le mode ébauche, je n'en sais rien ; en revanche, en mode SQL
Direct, ça ne me semble poser aucun problème ; personnellement,
j'écrirais ça de la façon suivante (imaginons que nous sommes dans la
table "clients") :
Select concat("prénom", "nom") as identité from "clients"
En revanche, à ta place, je me méfierais des caractères accentués
(selon ta configuration, tes réglages et les polices présentes sur ton
système, tu peux avoir des erreurs qui apparaissent, soit à
l'affichage, soit carrément dans l'exécution de la requête ; donc,
j'aurais tendance à conseiller de ne pas employer de acracères
accentués dans les noms de colonnes (ici, on en a un dans "prénom" et
dans "identité").
Ensuite, il est possible que tu veuilles, dans le champs résultant
"identité", séparer le nom et le prénom par un espace ; il va alors
faloir l'ajouter lors de la concaténation (celle que l'on obtient par
l'istruction "concat") ; le problème, c'est que dans Hsqldb (qui fait
tourner Base), cette instruction n'accepte pas plus de deux champs(et
ici, nous les avons déjà avec d'abord "prénom" et ensuite "nom") ;
deux écoles pour contourner le problème ; d'abord l'imbrication
d'instruction "concat", ensuite la substitution de d'instruction.
L'imbrication d'instructions "concat" consitera à écrire : select
concat("prénom", concat(' ', "nom")) as identité from "clients" [ici,
l'espace est contenu entre les apostrophes -attention, ce ne sont pas
des guillemets- qui suivent la parenthèse ouverte suivant elle même le
deuxième concat].
La substitution d'instruction repose sur le fait que l'instruction
"concat" peut aussi s'écrire "||" (chaque | étant obtenu en appuyant
simultanément sur AltGR et "6" en haut du clavier) et que dans ce cas
là, il n'y a pas de limite particulière au nombre de champs concaténés
; ici, ça donnerait donc : select ("prénom" || ' ' || "Prénom") as
identité from "clients"
Tu auras remarqué que dans chaque solution apparaît le "as identité" ;
cette instruction est obligatoire et sert à donner un nom à la colonne
créée par la concaténation ; l'omission du "as qquechose" ne retourne
pas une erreur mais une colonne entièrement vide (et sans nom).
Maintenant, pour en revenir à la question initiale, je ne pense pas
que ce soit possible en mode ébauche ; pour passer en mode SQL direct,
lorsque tu es en mode ébauche, il suffit de cliquer sur l'icône
représentant une équerre ; à ce moment là, apparaît une icône "SQL"
sur laquelle il faut cliquer (si tu ne fais que cliquer sur l'équerre,
seule la solution de l'imbrication d'instructions "concat" fonctionne,
en revanche, si tu cliques ensuite sur le "SQL", là les deux solutions
fonctionnent).
Espérant avoir aidé,
A+
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]