Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

SQL Join über NULL möglich?

Hier werden die SQL Grundlagen behandelt...

SQL Join über NULL möglich?

Beitragvon Mike91 » Mi 1. Jun 2016, 21:15

Hallo zusammen,

ich habe zwei Tabellen mit NULL-Werten.

Nun versuche ich diese beiden Tabellen miteinander zu joinen, bekomme es aber nicht hin.
Weder mit einem Left- noch mit einem Inner-Join...

Woran liegt das? Kann mir das einer erklären...

Thx...
Mike91
 
Beiträge: 45
Registriert: So 3. Nov 2013, 10:32

Re: SQL Join über NULL möglich?

Beitragvon SQLUnion » Do 2. Jun 2016, 08:50

Hey,

also aus meiner SQL Server Welt weiß ich, dass man nicht über NULL joinen kann,
da der Server nicht interpretieren kann, was hinter deinen SQL-Werten steht.

Also bevor er etwas Falsches zusammenjoined, filtert sie raus...
SQLUnion
 
Beiträge: 155
Registriert: Fr 1. Nov 2013, 15:54

Re: SQL Join über NULL möglich?

Beitragvon RSM_Tools » Do 2. Jun 2016, 09:37

Hallo,

eine Möglichkeit wäre den Join über COALESCE so zu modifizieren, daß für die Null-Werte ein 'echter' Wert definiert wird:
Code: Alles auswählen
  ON
     COALESCE(A.fld_Id, 'xxx') = COALESCE(B.fld_FK_ID, 'xxx')
RSM_Tools
 
Beiträge: 7
Registriert: Mo 30. Mai 2016, 15:41

Re: SQL Join über NULL möglich?

Beitragvon SQLUnion » Do 2. Jun 2016, 10:59

Eine weitere Variante wäre auch:
Code: Alles auswählen
ON
     ISNULL(A.fld_Id, '') = ISNULL(B.fld_FK_ID, '')

Obwohl ich nicht ganz den Unterschied zwischen ISNULL und COALESCE kenne. Ich weiß, dass es dort Performance-Unterschiede und kleine Erkennungsunterschiede existieren, habe mich aber damit noch nicht genau befasst.
SQLUnion
 
Beiträge: 155
Registriert: Fr 1. Nov 2013, 15:54

Re: SQL Join über NULL möglich?

Beitragvon RSM_Tools » Do 2. Jun 2016, 11:10

Hallo,

in dem genannten Beispiel ist wahscheinlich die Funktion ISNULL schneller und besser.

COALESCE kann man mehr als 2 Argumente übergeben. Die Argumente werden von links nach rechts abgefragt und der erste Wert, der nicht NULL ist zurückgegeben.

Code: Alles auswählen
SELECT ISNULL(fld1, fld2, fld3) -- Fehlermeldung
SELECT COALESCE(fld1, fld2, fld3) -- funktioniert
RSM_Tools
 
Beiträge: 7
Registriert: Mo 30. Mai 2016, 15:41

Re: SQL Join über NULL möglich?

Beitragvon SQLUnion » Do 2. Jun 2016, 14:29

Hey,

Mensch, besten Dank! Man lernt nie aus...

Gruß,
SQLUnion
SQLUnion
 
Beiträge: 155
Registriert: Fr 1. Nov 2013, 15:54

Re: SQL Join über NULL möglich?

Beitragvon Mike91 » Fr 3. Jun 2016, 15:16

Besten Dank euch Beiden!!!

Jetzt klappt es... :D

Ich habe das mal mit zwei großen Tabellen getestet und ISNULL ist eindeutig schneller.
Mike91
 
Beiträge: 45
Registriert: So 3. Nov 2013, 10:32


Zurück zu SQL Grundlagen

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron
  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: