Union de deux tables avec un nombre de colonnes différent
P粉879517403
2023-08-24 18:54:05
<p>J'ai deux tableaux (tableau A et tableau B). </p>
<p>Les deux tableaux ont un nombre de colonnes différent - en supposant que le tableau A comporte plus de colonnes. </p>
<p>Comment puis-je fusionner ces deux tables et obtenir des valeurs nulles sur les colonnes que la table B n'a pas ? </p>
Je suis venu ici et j'ai suivi la réponse ci-dessus. Mais la différence d'ordre des types de données a entraîné une erreur. La description ci-dessous d'une autre réponse sera utile.
Les résultats ci-dessus sont-ils dans le même ordre que les colonnes de votre tableau ? Parce qu'Oracle est très strict sur l'ordre des colonnes. L'exemple suivant générera une erreur :
ORA-01790 : l'expression doit avoir le même type de données que l'expression correspondante
Comme vous pouvez le voir, la cause première de l'erreur réside dans la non-concordance de l'ordre des colonnes impliquée par l'utilisation de * comme spécificateur de liste de colonnes. Ce type d'erreur peut être facilement évité en saisissant explicitement la liste des colonnes :
sélectionnez col_a, col_b, col_c dans test1_1790 syndicat tous sélectionnez col_a, col_b, col_c dans test2_1790 ; Une situation plus courante pour cette erreur est lorsque vous échangez (ou déplacez) par inadvertance deux colonnes ou plus dans une liste SELECT :
Ou, si ce qui précède ne résout pas votre problème, que diriez-vous de créer un alias dans une colonne , comme ceci : (La requête est différente de la vôtre, mais le point ici est de savoir comment ajouter un alias dans une colonne.)
Pour les tableaux avec moins de colonnes, vous pouvez ajouter des colonnes vides supplémentaires, par exemple :