On m'a donné une situation pour trouver l'enregistrement commun entre 2 tables sans utiliser Union code>. Je peux le faire. Mais je ne suis pas capable de faire "l'union". Je veux dire que je dois trouver la sortie de 2 table, y compris dupliquer sans utiliser
Union tout code>. Y a-t-il de toute façon le faire?
SORTIE CODE> SORTIE Je peux réaliser via la requête ci-dessous P>
select nvl(a.x,b.x) output from A full outer join B on A.x=b.X order by output;
3 Réponses :
Je dois trouver la sortie de 2 table, y compris dupliquer sans utiliser
Union tout code> p>
xxx pré>
Vous êtes trop proche de votre réponse.
pour Vous devez donc utiliser la requête suivante: p> Union code>, vous avez utilisé la requête suivante où vous avez une jointure sur la colonne x: p>
Union Tout Code>, vous pouvez utiliser une condition de jointure qui ne peut jamais être satisfaite. Il générera la même sortie que
Union tout code>. P>
select nvl(a.x,b.x) output from A full outer join B on 1=2 order by output;
Vous pouvez obtenir plus points em> dans l'entretien si vous mentionnez certains EDGE Case em>, cela pourrait être le cas: Si la colonne de l'une des tables n'est pas une clé primaire (ou sur leadrate unique), la solution proposée pour échoue em> et vous devez utiliser Union p>
distinct code> p>
select nvl(a.x, b.x) x from a full join b on a.x is null or b.x is null
Veuillez fournir des données d'échantillonnage et des résultats souhaités. Expliquez pourquoi vous ne pouvez pas utiliser
union tout code>
commun i>, cela signifie-t-il vraiment des rangées qui n'existent que dans l'une des tables?
Veuillez nous montrer des données d'échantillonnage et des résultats attendus. Il pourrait également être utile de nous montrer votre requête existante, qui fonctionne pour
Union code>.
Bonjour @gordonlinoff C'était une interview question d'Amazon.