我正在尝试删除某些字符。
目前我输出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
答案 0 :(得分:82)
您可以使用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'
答案 1 :(得分:7)
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'
答案 2 :(得分:-3)
UPDATE yourtable
SET field_or_column =REPLACE ('current string','findpattern', 'replacepattern')
WHERE 1