6
votes

SQL Sélectionnez Fusionner deux colonnes dans une

J'ai quatre tables:

Tableau A: P>

B_ID | C_ID  | C_Name | D_ID | D_Name
-------------------------------------
 5   |  5    | Alpha  | Null | Null
 6   |  6    | Beta   | Null | Null
 7   |  Null | Null   | Null | Delta
 8   |  Null | Null   | Null | Gamma


3 commentaires

Veuillez ajouter la sortie souhaitée, afin que nous puissions mieux le comprendre


Il est déjà ajouté. lisez s'il vous plaît. Voir Le résultat attendu devrait ressembler à:


Pour modifier votre propre requête, vous devez consulter coalesce (c_name, d_name) comme nom , mais comme @sgedDes a signalé, il y a une approche beaucoup plus directe.


3 Réponses :


4
votes

Voici une option à l'aide d'une sous-requête avec Union tout : xxx


2 commentaires

Je reçois un indice dans mon exemple, que "(gauche) jointures extérieures" doit être utilisée. Avez-vous une solution intuitive avec des jointures extérieures (gauche))?


@beta - Si vous devez utiliser un jointure externe , remplacez joindre avec rejoindre . Il n'est nécessaire que si toutes les offres correspondantes n'existeraient pas ces tables.



3
votes

Vous pouvez remplacer * avec des expressions qui font ce que vous voulez xxx

et ajouter une jointure à la table A n'est pas difficile ... xxx

Si vous avez besoin d'une manipulation différente pour les valeurs NULL ou pour la manipulation des valeurs d'identité cutanées potentielles, la requête peut être modifiée. (L'exemple de requête assume des valeurs uniques pour les colonnes x_id.)


0 commentaires

0
votes

Compte tenu des tables telles que définies, je suggère la requête suivante: xxx

Si vous pensez que des valeurs dupliquées sont retournées et que vous les souhaitez, utilisez Union tout au lieu de Union .


0 commentaires