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