0
votes

Croix rejoindre la requête à Oracle

J'essaie de réfracter une requête qui a dans sa concaténation sélectionnée de cinq champs, donc xxx

résultat serait quelque chose comme ça xxx

Mon problème est que cette requête fonctionne, tout ou partie de ces champs pourraient être nuls. Il a été suggéré qu'une jointure croisée pourrait être de permettre à une affichage de NULL lorsque tout ou partie de ces champs est null. Malheureusement, je ne sais pas comment faire cela. La jointure croisée a été suggérée pour la performance en raison du grand nombre de lignes.

Quelqu'un peut-il me montrer comment


7 commentaires

Une jointure croisée semble être un moyen étrange de faire cela. Il suffit d'envelopper chaque colonne avec coalesce (nom de colonne, '') lors de la concaténation pour le changer de NULL à vide, il va donc concaténer sans retourner une null. Peut-être que je vais mal comprendre la question.


La concaténation affiche les résultats en tant que clé, mais dans le cas où quelque chose est NULL, nous voulons toujours montrer la ligne avec l'identifiant comme null dans le texte. La requête va être utilisée dans un rapport MI


Non quand vous montrez la clé comme null avec le mot null


Encore une fois, certains échantillons de données et les résultats souhaités aideraient vraiment ici.


Votre code n'est pas valide SQL. Avez-vous l'intention d'avoir || entre les valeurs?


Donné un exemple de sortie


@Jnevill 'a' || Null donnera a , pas null .


3 Réponses :


1
votes

Vous ne donnez pas beaucoup de détails mais j'attends ce que vous voulez, c'est ce qui suit.

SELECT COALESCE(Id,'') || '-' || 
       COALESCE(Field_2,'') || '-' ||
       COALESCE(Field_3,'') || '-' ||
       COALESCE(Field_4,'')
    AS id
 FROM some_table


0 commentaires

0
votes

Essayez cette
Sélectionnez NVL (Concat (Concat (Concat (Concat (Concat (A, B), C), D), E), 'NULL') de certains_Table


1 commentaires

Si seulement il y avait un opérateur de concaténation;)



0
votes

Lorsque l'un des champs, nous affichons la clé comme null avec le mot null

Qu'est-ce qui pourrait être rejoint ici? Utilisez un cas simple : xxx

résultat: xxx


0 commentaires