如何在特定字符后仅返回记录? 例如:
'1-1080599'
'021-1080599'
'02 -1080599 '
预期结果:
'1080599'
答案 0 :(得分:5)
如果您希望在-
之后提取每个字符并且字符串中只有一个-
字符,则此方法有效。
select substring(column1,charindex('-',column1)+1,len(column1)) from tablename
where charindex('-',column1) > 0
或RIGHT
可以使用。
select right(column1,charindex('-',column1)) from tablename
where charindex('-',column1) > 0
答案 1 :(得分:2)
vkp的解决方案可以正常工作,但您也可以使用PARSENAME使事情稍微简单,例如:
SELECT PARSENAME(REPLACE('101-2345678', '-', '.'), 1);
如果你想摆脱空间,那么你可以这样做:
SELECT LTRIM(PARSENAME(REPLACE('101 - 2345678', '-', '.'), 1));
......甚至:
SELECT PARSENAME(REPLACE(REPLACE('101 - 2345678', '-', '.'), ' ', ''), 1);