2010-05-09 5 views
-1

J'ai deux tables à se joindre à une colonne (par exemple emp_id) .. si emp_id dans les deux tables ont des valeurs nulles, comment SQL Server et traiter Oracle ?? ?Rejoindre null dans SQL Server, Oracle et informatica

Coz, je lis que informatica négligerons les lignes NULL lorsque joining..if je manipule la valeur nulle, en substituant -1, une croix-jointure va se passer que je ne veux pas ..

Que puis-je faire ici?

Je ne peux pas complètement négliger les lignes qui ont la valeur NULL.

Merci

+0

Que voulez-vous faire avec les lignes avec des valeurs NULL? –

+0

seule la colonne id a des valeurs NULL .. toutes les autres colonnes ont des valeurs, je les veux – jest

+0

Oui, mais sur quoi vous joignez-vous? Si rien, alors voir ma réponse ci-dessous. –

Répondre

1

Vous ne pouvez pas rejoindre sur colA = colB et attendre NULLs à comparer comme égaux. En fonction de vos besoins (en supposant peut-être une sorte de synchronisation de table besoin ci-dessous) trois approches que je peux penser sont

  1. Utilisez COALESCE pour substituer une valeur telle que -1 à la place de null si une valeur appropriée existe qui ne peut jamais se produire dans vos données réelles. COALESCE(Table1.colA,-1) = COALESCE(Table2.colB,-1)
  2. Utilisez à la fois une vérification IS NULL et d'égalité sur toutes les colonnes de jointure.
  3. Utiliser INTERSECT (les valeurs nulles seront traitées comme égales). Peut-être dans une table dérivée sur laquelle vous pouvez REJOINDRE.
+0

si je remplace -1, une jointure croisée aura-t-elle lieu? – jest

+0

Non, mais c'est assez inefficace donc probablement pas très approprié pour de grandes quantités de lignes. Pouvez-vous clarifier votre situation pourquoi vous avez besoin de faire cela? Je suppose que vous aurez également des colonnes non nulles dans votre jointure. par exemple. synchroniser 2 copies d'une table. Si ce n'est pas le cas, vous obtiendrez une jointure croisée oui. –

+0

Je n'ai pas fait face à un scénario du monde réel comme celui-ci .. juste un doute .. alors, que ferez-vous si la colonne ID ont des valeurs nulles? – jest