如何在某些字符后只返回记录?

时间:2016-04-27 14:31:50

标签: sql sql-server

如何在特定字符后仅返回记录? 例如:

'1-1080599'
'021-1080599'
'02 -1080599 '

预期结果:

'1080599'

2 个答案:

答案 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);