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]

Répondre à