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

Code: Alles auswählen

right('     '+trim(cast(tr.lini_nr as sql_char)),5) 
entspricht aber exakt

Code: Alles auswählen

str(lini_nr,5,0)
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 ...;