Concat funktioniert nicht

IchHH

Datenbank-Guru
Beiträge
284
Hallo alle miteinander,

nachdem es in der letzten Zeit so ruhig um mich wurde melde ich mich nun wieder mit einem aktuellen Problem mit concat. Ich habe den Code immer so verstanden das ich einfach Concat(Spring1,Spring2,...) miteineander verknüpfen kann. In meinem Fall funktioniert das aber nicht, ich bekomme kein vernünftiges Ergebnis raus.

Und so sieht der Code als Where Bedingung aus:
Code:
Where    [S_92651_1].[Anschrift_gültig_bis] >= GetDate() and
(Concat(left([S_92651_1].Anschrift_Straße,5),[S_92651_1].[Anschrift_Typ]) = Concat(left([S_92651_1].Anschrift_Straße,5),[S_92651_1].[Anschrift_Typ]))

Nun würde ich aber schon gerne verstehen warum der Code nicht funktioniert.

Danke euch schon jetzt.
 
Werbung:
"Funktioniert nicht" ist so eine mächtige Problembeschreibung. Welche MSSQL Version nutzt du, hat die überhaupt concat()? Ist einer der Werte NULL?
 
Microsoft SQL Server Management Studio 13.0.16106.4
Microsoft Analysis Services-Clienttools 13.0.1700.441
Microsoft Data Access Components (MDAC) 6.1.7601.17514

Nein kein der Werte ist Null. Das Problem ist das ich zwar Ergebnisse angezeigt bekomme, aber nicht das was ich damit bezweken möchte. würde ich die Where Bedingung mit Concat weglassen, käme das selbige Ergebnis.
 
Das ist zwar schön das ich jetzt weiß welches Management Studio du einsetzt aber interessieren würde mich mehr die Serverversion. Dazu im Management Studio Rechtsklick auf die DB Instanz und dann unter Eigenschaften "Version".

Dir ist klar das deine beiden concat() im WHERE-Teil das selbe ergeben und damit immer identisch sind?
 
Version 12.0.4100.1

Ja er soll mir auch nur die Datensätze anschauen wo zwei oder mehr Datensätze den gleichen Inhalt in Straße und Adresstypen haben. Ich will damit sicherstellen das ich wirklich nur die Datensätze angezeigt bekomme die identisch sind und nicht wo es ein Unterschied in der Straße bei gleichen Adresstyp oder bei gleichen Straßen aber unterschiedlichen Adresstyp daten angezeigt werden.
 
Werbung:
Da wirst du aber mit WHERE 1=1 nicht weit kommen, das scheitert nicht am concat(). Eine Möglichkeit wäre Gruppieren mit HAVING:
Code:
SELECT Concat(left([S_92651_1].Anschrift_Straße,5),[S_92651_1].[Anschrift_Typ])
FROM [S_92651_1]
WHERE [S_92651_1].[Anschrift_gültig_bis] >= GetDate()
GROUP BY Concat(left([S_92651_1].Anschrift_Straße,5),[S_92651_1].[Anschrift_Typ])
HAVING count(*) > 1
oder Join der selben Tabelle:
Code:
SELECT a.*
FROM [S_92651_1] a
INNER JOIN [S_92651_1] b
ON a.ID != b.ID
AND Concat(left(a.Anschrift_Straße,5),a.[Anschrift_Typ]) = Concat(left(b.Anschrift_Straße,5),b.[Anschrift_Typ])
 
Zurück
Oben