[Base] Concaténation de champs vides

Venez découvrir tous les tutoriels, modèles et autres foires aux questions afin de maîtriser rapidement votre suite bureautique favorite.

Modérateur: Vilains modOOs

Règles du forum
Aucune question dans cette section !
Cette section est faite pour présenter les tutoriels. Si vous avez une question sur l'installation, le fonctionnement ou l'utilisation, vous devez poster dans la section du module où se produit le problème.

[Base] Concaténation de champs vides

Messagepar sebmdp » 16 Mai 2009 11:09

Bonjour à toutes & tous.

Voici une méthode trouvée sur ce forum (merci à squenson) pour éviter les résultats nuls lors d'un Concat sur des champs vides. Il s'agit en fait de la fonction Coalesce.

Prenons 3 champs d'une Table x :
CodePostal (champ renseigné)
Ville (champ renseigné)
Cedex (champ pouvant être vide)

Afin d'éviter un résultat vide sur un Concat (lorsque le champ Cedex n'est pas renseigné), on utilisera le code suivant :
Code : Tout sélectionner   AgrandirRéduire
( "CodePostal" || ' ' || "Ville" || ' ' || coalesce("Cedex", '' ) )


On obtiendra donc un résultat du type : 'CodePostal Ville Cedex' ou 'CodePostal Ville' si le champ Cedex n'est pas renseigné

La fonction LTRIM ou RTRIM permettra de retourner la chaîne de caractères en ayant supprimé les caractères précisés (ou par défaut un espace se trouvant à gauche pour LTRIM ou à droite pour RTRIM).

================================================================

EDIT 1 : Ci joint un ficher exemple avec 3 requêtes dont 2 pour visualiser la suppression des caractères avec les fonctions LTRIM & RTRIM.
Salutations.
Pièces jointes
BaseExCoalesce.odb
(23.99 Kio) Téléchargé 495 fois
Dernière édition par sebmdp le 04 Juin 2009 11:07, édité 1 fois.
Open Office 3.2.1
Mac OS 10.5.8
sebmdp
Membre hOOnoraire
Membre hOOnoraire
 
Message(s) : 125
Inscrit le : 08 Juil 2008 17:31
Localisation : Orleans / France

Re: [Base] Concaténation de champs vides

Messagepar jeanmimi » 18 Mai 2009 08:14

Bonjour,
Tu peux trouver un fichier exemple ici avec deux requêtes, une avec CONCAT, une avec COALESCE.
viewtopic.php?f=9&t=13620&p=76146&hilit=coalesce#p76136
Le lien vers ce message est aussi inséré dans le guide HSQLDB dans la partie des exemples, en bas de cette page :
http://wiki.services.openoffice.org/wik ... h09#SELECT
LibreOffice Version : Version : 7.0.0.3 (x64)(6 aout 2020)
Adoptopen JRE ou Oracle JRE (x64) 1.8.0_xxx, Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 15403
Inscrit le : 03 Mars 2006 17:02
Localisation : Venise verte

Re: [Base] Concaténation de champs vides

Messagepar Pierre-Yves Samyn » 18 Mai 2009 09:52

Bonjour

Dans un même ordre d'idée on peut rappeler

Code : Tout sélectionner   AgrandirRéduire
IFNULL(exp,valeur)


Si exp est Null, valeur est retournée, sinon c'est Exp

cf. documentation http://hsqldb.org/doc/guide/ch09.html#N1251E

Et la mise en œuvre par exemple dans ces fils :
Remplacer valeur d'un champ booléen
Sélectionner des valeurs vides
Fonction Si dans une requete
Calcul avec champ "NULL"
addition de champs même vide
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 11276
Inscrit le : 02 Mai 2006 09:42


Retour vers Tutoriels

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)