0
votes

obtenir la production d'union tout sans utiliser l'union tout

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? XXX PRE>

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;


4 commentaires

Veuillez fournir des données d'échantillonnage et des résultats souhaités. Expliquez pourquoi vous ne pouvez pas utiliser union tout


commun , 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 .


Bonjour @gordonlinoff C'était une interview question d'Amazon.


3 Réponses :


0
votes

Je dois trouver la sortie de 2 table, y compris dupliquer sans utiliser Union tout xxx

dbfiddle


0 commentaires

2
votes

Vous êtes trop proche de votre réponse.

pour Union code>, vous avez utilisé la requête suivante où vous avez une jointure sur la colonne x: p> xxx pré> Pour 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>

Vous devez donc utiliser la requête suivante: p>

select nvl(a.x,b.x) output from A full outer join B on 1=2 order by output;


0 commentaires

0
votes

Vous pouvez obtenir plus points em> dans l'entretien si vous mentionnez certains EDGE Case em>, cela pourrait être le cas:

clé primaire forte>

Si la colonne de l'une des tables n'est pas une clé primaire (ou sur leadrate unique), la solution proposée pour Union p> Xxx pré>

échoue em> et vous devez utiliser 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


0 commentaires