我正在尝试删除某些字符.
目前我有输出,cityname district但我想删除cityname.
SELECT Ort FROM dbo.tblOrtsteileGeo
WHERE GKZ = '06440004'
Run Code Online (Sandbox Code Playgroud)
输出:
Büdingen Aulendiebach
Büdingen Büches
Büdingen Calbach
Büdingen Diebach
Büdingen Dudenrod
Büdingen Düdelsheim
Run Code Online (Sandbox Code Playgroud)
期望的输出:
Aulendiebach
Büches
Calbach
Diebach
Dudenrod
Düdelsheim
Run Code Online (Sandbox Code Playgroud)
Kaf*_*Kaf 91
你可以使用Replace函数;
REPLACE ('Your String with cityname here', 'cityname', 'xyz')
--Results
'Your String with xyz here'
Run Code Online (Sandbox Code Playgroud)
如果将其应用于表列中的位置 stringColumnName, cityName both are columns of YourTable
SELECT REPLACE(stringColumnName, cityName, '')
FROM YourTable
Run Code Online (Sandbox Code Playgroud)
或者,如果您想'cityName'从列的输出中删除字符串,那么
SELECT REPLACE(stringColumnName, 'cityName', '')
FROM yourTable
Run Code Online (Sandbox Code Playgroud)
编辑:由于您现在提供了更多详细信息,因此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'
Run Code Online (Sandbox Code Playgroud)
UPDATE yourtable
SET field_or_column =REPLACE ('current string','findpattern', 'replacepattern')
WHERE 1
Run Code Online (Sandbox Code Playgroud)
一个问题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'
Run Code Online (Sandbox Code Playgroud)