从字符串中删除某些字符

我想删掉某些角色。

目前我有输出喜欢 cityname district,但我想删除 cityname

SELECT Ort FROM dbo.tblOrtsteileGeo
WHERE GKZ = '06440004'

产出:

Büdingen Aulendiebach
Büdingen Büches
Büdingen Calbach
Büdingen Diebach
Büdingen Dudenrod
Büdingen Düdelsheim

预期输出:

Aulendiebach
Büches
Calbach
Diebach
Dudenrod
Düdelsheim
404694 次浏览

可以使用 Replace函数作为;

REPLACE ('Your String with cityname here', 'cityname', 'xyz')
--Results
'Your String with xyz here'

如果将此应用于表列,其中 stringColumnName, cityName both are columns of YourTable

SELECT REPLACE(stringColumnName, cityName, '')
FROM YourTable

或者,如果您想从输出列中删除 'cityName'字符串,那么

SELECT REPLACE(stringColumnName, 'cityName', '')
FROM yourTable

编辑: 由于你现在已经给出了更多的细节,REPLACE函数不是排序问题的最佳方法。以下是另一种方式做到这一点。而且@MartinSmith 给出了一个很好的答案。现在您可以再次选择。

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'

REPLACE的一个问题是城市名称包含地区名称。

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