Einzelnen Beitrag anzeigen

raller09

Registriert seit: 7. Nov 2005
37 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: Rückgabe eines Wertes aus anderer Zeile, wenn aktueller Wert = null

  Alt 10. Apr 2013, 15:03
Wenn ich mir so ansehe, wie du COALESCE verwendest

COALESCE( NullIf( rss.BEZEICHNUNG , ''), sbs.BEZEICHNUNG) dann befürchte ich, dass du nicht verstanden hast, was der macht
möglich. aber er macht genau dass, was ich will.


SQL-Code:
COALESCE( 'Hallo'             , 'Du') => 'Hallo';
COALESCE( ''                  , 'Du') => ''; <- Das soll so nicht
COALESCE( NULL , 'Du') => 'Du';

COALESCE( NullIf( 'Hallo', ''), 'Du') => 'Hallo';
COALESCE( NullIf( ''     , ''), 'Du') => 'Du'; <- durch NullIf wird 'Du' zurückgegeben
COALESCE( NullIf( NULL , ''), 'Du') => 'Du';
Ich habe bei meiner Verwendung keinen Fehler festgestellt. Läuft da was Falsch?


Die Abfrage könnte dann so aussehen (SprachID 1 ist default und komplett)
SQL-Code:
         SELECT b.ID AS ID,
                COALESCE( bs.Bezeichnung, bsd.Bezeichnung ) AS Bezeichnung,
                COALESCE( bs.MemoText, bsd.MemoText ) AS MemoText
           FROM Branchen b
           JOIN Branchen_Sprache bsd ON b.ID = bsd.ID AND bsd.SprachID = 1
LEFT OUTER JOIN Branchen_Sprache bs ON b.ID = bs.ID AND bs.SprachID = 3
Stimmt. Gute Idee.
Leider kann ich gerade nicht überblicken, ob die Standard-Sprache immer komplett gefüllt ist...

Geht dass auch ohne diese Annahme?


Danke,

Ralf
  Mit Zitat antworten Zitat