Ich versuche, bestimmte Zeichen zu entfernen.
Im Moment habe ich eine Ausgabe wie "cityname district", aber ich möchte "cityname" entfernen.
SELECT Ort FROM dbo.tblOrtsteileGeo
WHERE GKZ = '06440004'
Ausgabe:
Büdingen Aulendiebach
Büdingen Büches
Büdingen Calbach
Büdingen Diebach
Büdingen Dudenrod
Büdingen Düdelsheim
Gewünschte Ausgabe:
Aulendiebach
Büches
Calbach
Diebach
Dudenrod
Düdelsheim
Sie können die Funktion "Ersetzen" wie folgt verwenden;
REPLACE ('Your String with cityname here', 'cityname', 'xyz')
--Results
'Your String with xyz here'
Wenn Sie dies auf eine Tabellenspalte anwenden, bei der stringColumnName, cityName beide Spalten von YourTable
sind
SELECT REPLACE(stringColumnName, cityName, '')
FROM YourTable
Oder wenn Sie die Zeichenkette 'cityName'
aus der Ausgabe einer Spalte entfernen wollen, dann
SELECT REPLACE(stringColumnName, 'cityName', '')
FROM yourTable
EDIT: Da Sie jetzt mehr Details angegeben haben, ist die Funktion REPLACE
nicht die beste Methode, um Ihr Problem zu lösen. Nachfolgend finden Sie eine andere Möglichkeit, dies zu tun. Auch @MartinSmith hat eine gute Antwort gegeben. Jetzt haben Sie die Möglichkeit, erneut zu wählen.
SELECT RIGHT (O.Ort, LEN(O.Ort) - LEN(C.CityName)-1) As WithoutCityName
FROM tblOrtsteileGeo O
JOIN dbo.Cities C
ON C.foo = O.foo
WHERE O.GKZ = '06440004'
Ein Problem mit REPLACE
tritt auf, wenn Städtenamen den Namen des Bezirks enthalten. Sie können etwas verwenden wie.
SELECT SUBSTRING(O.Ort, LEN(C.CityName) + 2, 8000)
FROM dbo.tblOrtsteileGeo O
JOIN dbo.Cities C
ON C.foo = O.foo
WHERE O.GKZ = '06440004'
UPDATE yourtable
SET field_or_column =REPLACE ('current string','findpattern', 'replacepattern')
WHERE 1