68

我正在尝试删除某些字符。

目前我有输出,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
4

3 回答 3

109

您可以将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'
于 2013-01-14T13:24:21.947 回答
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' 
于 2013-01-14T13:37:46.760 回答
5
UPDATE yourtable 
SET field_or_column =REPLACE ('current string','findpattern', 'replacepattern') 
WHERE 1
于 2017-12-12T06:22:59.963 回答