Seite 1 von 1
Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 9:13
von Manfred
Hi,
ich muß einen Left Join machen, habe aber in der einen Tabelle einen numerischen Wert und in der Tabelle einen Character Wert. Wie baut man sowas auf?
Code: Alles auswählen
left Join linien li ON li.nummer = Str(tr.lini_nr,5,0)
will so wohl nicht klappen.
Ist jetzt zwar der ADS, aber sollte doch generell lösbar sein!?
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:20
von nightcrawler
CAST
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:26
von Marcus Herz
Code: Alles auswählen
left Join linien li ON li.nummer = right(' '+trim(cast(tr.lini_nr as sql_char)),5)
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:37
von Manfred
wie befürchtet, klappt nicht....
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:44
von Marcus Herz
was bekommst du für einen Fehler? Hab keine Klammer vergessen
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:45
von Manfred
keinen Fehler, es werden keine Daten aus tr angezeigt. also der rechte Teil klappt nicht
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:47
von Marcus Herz
entspricht aber exakt
Dann liegt der Fehler woanderst
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:53
von HaPe
left Join linien li ON VAL( li.nummer ) = tr.lini_nr
Da fallen Probleme mit führenden und angehängten Leerzeichen in Zeichenketten weg ...
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 10:56
von Marcus Herz
Das hängt jetzt vom Index ab. Linien.nummer ist ja als CHAR Index definiert und nur dann performant, wenn der Suchausdruck dem Indexkey entspricht
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 11:07
von HaPe
Und andersrum ist das nicht genauso wichtig?
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 11:15
von Marcus Herz
in dem Fall nicht. Ein LEFT JOIN ist ja nichts anderes wie nach jedem SKIP in der Mastertabelle ein SEEK in der Childtabelle
Re: Left Join auf Num->string
Verfasst: Mo, 27. Mär 2023 13:31
von nightcrawler
Manfred,
wenn Du so freundlich wärst, Testdaten hier einzustellen, könnten wir es ausprobieren.
zB CREATE TABLE ...; INSERT ITNO ...;