Voici ma table. Une liste d'identifiants avec des dates d'inscription dans les colonnes Newsletter, Rapport, Infographie.
Je veux combiner toutes ces colonnes en une seule, sans les nulls p>
J'ai essayé le code suivant < / p> mais cela me donne simplement une table vierge. Y a-t-il un moyen de résoudre ce problème? Merci p> p>
5 Réponses :
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? p>
alors quelque chose comme : p> pourrait fonctionner pour vous ... p> p>
Si vous utilisez Oracle, utilisez nvl code> pour remplacer null code> avec la chaîne vide
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
Voulez-vous juste que cela?
Cette réponse manque à son explication éducative.
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 P>
Qu'est-ce que vous utilisez?
SQL-Server, MySQL, etc. CODE> et ESSAYERConcaténate CODE> ANULL code> peut être le problème, vous devez rechercher la conversionnulls CODE> àStrings vides CODE> Si vous allez surConcaténate code> Toutes les valeurs de colonne ensemble.Juste pour la curiosité de quiconque, j'ai testé cela dans
SQL-Server 2014 CODE> et il renvoie les trois lignes de la sélection extérieure, je n'ai même pas dérangé le castingDateTimes code> ààvarcharars code> et la fonctionConcat code> fonctionnent toujours, peut-être dansSQL-Server code> 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.