0
votes

SQL: Comment combiner des colonnes en une et filtrer les nulls?

Voici ma table. Une liste d'identifiants avec des dates d'inscription dans les colonnes Newsletter, Rapport, Infographie.

 Entrez la description de l'image ici

Je veux combiner toutes ces colonnes en une seule, sans les nulls

J'ai essayé le code suivant < / p> xxx

mais cela me donne simplement une table vierge. Y a-t-il un moyen de résoudre ce problème? Merci

sql

2 commentaires

Qu'est-ce que vous utilisez? SQL-Server, MySQL, etc. et ESSAYER Concaténate A NULL peut être le problème, vous devez rechercher la conversion nulls à Strings vides Si vous allez sur Concaténate Toutes les valeurs de colonne ensemble.


Juste pour la curiosité de quiconque, j'ai testé cela dans SQL-Server 2014 et il renvoie les trois lignes de la sélection extérieure, je n'ai même pas dérangé le casting DateTimes à à varcharars et la fonction Concat fonctionnent toujours, peut-être dans SQL-Server Il convertit sur la chaîne derrière les scènes ou quelque chose. Quoi qu'il en soit, puisque vous n'avez pas spécifié de quel type de moteur de base de données vous travaillez, c'est tout ce que je peux offrir.


5 Réponses :


1
votes

La réponse peut dépendre de la base de données que vous utilisez, donc un lecteur de mise en garde.

est-ce que une seule colonne sera non nulle, comme dans votre échantillon?

alors quelque chose comme : xxx

pourrait fonctionner pour vous ...


0 commentaires

1
votes

Si vous utilisez Oracle, utilisez nvl pour remplacer null avec la chaîne vide xxx


0 commentaires

1
votes

Je pense que vous voulez coalesce code> qui renvoie la première valeur NULL NULL dans la liste (vous avez plus d'une valeur NULL NULL dans une rangée, cela retournera toujours le premier):

SELECT id, COALESCE(newsletter, report, infographics) AS combined_date
FROM t
WHERE COALESCE(newsletter, report, infographics) IS NOT NULL


0 commentaires

2
votes

Voulez-vous juste que cela? XXX


1 commentaires

Cette réponse manque à son explication éducative.



1
votes

Sélectionnez ID, Concat (bulletin d'information, rapport, infographie) comme combined_column De la table où newsletter n'est pas nulle et que le rapport n'est pas nul et infographie n'est pas NULL


0 commentaires