MySQL SÉLECTIONNEZ QUE de combiner deux colonnes en une seule
À l'aide de cette solution, j'ai essayé d'utiliser FUSIONNENT dans le cadre d'une requête MySQL pour la sortie vers un fichier csv à l'aide de SELECT à nommer les noms de colonne lors de l'exportation des données.
SELECT FirstName AS First_Name
, LastName AS Last_Name
, ContactPhoneAreaCode1
, ContactPhoneNumber1
, COALESCE(ContactPhoneAreaCode1, ContactPhoneNumber1) AS Contact_Phone
FROM TABLE1
Je voulais 3 colonnes: First_Name, Last_Name et Contact_Phone
Je reçois 5 colonnes: First_Name, Last_Name, ContactPhoneAreaCode1, ContactPhoneNumber1 et Contact_Phone
Comment puis-je cacher la fusion de ContactPhoneAreaCode1, ContactPhoneNumber1 dans une seule colonne pour les Contact_Phone à partir de l'intérieur de la requête?
- Il suffit de laisser les colonnes que vous ne voulez pas voir à l'extérieur de votre requête.
COALESCE
renvoie le premier champ non null. Donc, si ContactPhoneAreaCode1 n'est pas nulle alors Contact_Phone sera égal à ContactPhoneAreaCode1. Vous souhaitez utiliser la fonctionCONCAT
Vous devez vous connecter pour publier un commentaire.
Si les deux colonnes peuvent contenir des
NULL
, mais vous voulez continuer à les fusionner en une seule chaîne, la solution la plus simple est d'utiliser CONCAT_WS():De cette façon, vous n'aurez pas à vérifier pour
NULL
-ness de chaque colonne séparément.Sinon, si les deux colonnes sont en fait définis comme
NOT NULL
, CONCAT() sera tout à fait suffisant:Comme pour
COALESCE
, c'est un peu différent de la bête: compte tenu de la liste d'arguments, elle renvoie le premier qui n'est pasNULL
.' '
ne fonctionne pas.' '
au début mais entre les colonnes 😛Vous n'avez pas besoin de liste ContactPhoneAreaCode1 et ContactPhoneNumber1
Vous n'avez pas besoin de sélectionner les colonnes séparément afin de les utiliser dans votre CONCAT. Il suffit de les enlever, et votre requête sera le suivant:
En cas de
NULL
colonnes il est préférable d'utiliserIF
clause de ce genre qui combinent les deux fonctions de :CONCAT
etCOALESCE
et utilise des caractères spéciaux entre les colonnes dans le résultat comme l'espace ou '_'