gregory666
Goto Top

MS SQL JOIN bei gleichen Spaltennamen

Hallo,

bei einem INNER JOIN verwende ich u.a. Spalten aus "company$table_1"."No" und "company$table_2"."No".
Wenn ich dies so lasse, wird eine der Spalten umbenannt in "No_1".
Damit kann ich sie softwareseitig nicht mehr identifizieren, da der erwartete Name von dem tatsächlichen Namen abweicht.
Verwende ich einen Alias
"company$table_2"."No" as TEST
kann ich auf TEST kein LIKE anwenden. Dies ist aber erforderlich.
Was kann ich da tun?

Gruß, Andreas

Content-ID: 666615

Url: https://administrator.de/forum/ms-sql-join-bei-gleichen-spaltennamen-666615.html

Ausgedruckt am: 04.04.2025 um 20:04 Uhr

em-pie
Lösung em-pie 11.05.2021 um 07:34:29 Uhr
Goto Top
Moin,

Eigentlich sehr trivial:

1
2
3
4
5
6
7
8
9
10
SELECT
 a.No as No1,
 b.No as No2,
 a.SomeField,
 a.SomeOtherField

FROM company$table_1 as a
INNER JOIN company$table_2 as b on a.Field = b.Field

WHERE a.No like '%blabla%'  

Gruß
em-pie
ukulele-7
Lösung ukulele-7 11.05.2021 um 08:35:00 Uhr
Goto Top
Entscheidend ist, das du den Alias nicht im selben Query verwenden kannst. Der Alias TEST existiert erst im Resultset, innerhalb der Abfrage kannst du den vollqualifizierten Spaltennamen "company$table_2"."No" verwenden oder einen Tabellenalias wie im Query von em-pie aber eben keinen Spaltenalias.
Gregory666
Gregory666 11.05.2021 um 08:40:37 Uhr
Goto Top
Dann wäre der Unterschied nur, dass ich das LIKE auf den Originalnamen setze statt auf den Alias.
Als Ausgabe bekäme ich zwar immernoch einen anderen Namen, aber eben kontrolliert und nicht nach Schema "_1".
Das probiere ich mal.
Danke