如何使用SQL Server中的预定义特殊字符修剪字符串

时间:2016-06-22 12:05:46

标签: sql-server

这是我的字符串:

lid://abcde.ln.ln_dev_510

如何使用LTRIM,RTRIM获取'_'之后的数字。

谢谢。

3 个答案:

答案 0 :(得分:2)

LTRIMRTRIM用于删除字符串中的尾随和前导空格。您可以使用以下查询获取数字:

DECLARE @t VARCHAR(MAX)='lid://abcde.ln.ln_dev_510'
SET @t = REVERSE(@t)

SELECT REVERSE(SUBSTRING(@t,1,CHARINDEX('_',@t)-1))

答案 1 :(得分:2)

在使用PARSENAME的情况下,您可以在最后_之后获取值。

DECLARE @StringValue AS VARCHAR (500) = 'lid://abcde.ln.ln_dev_510';
SELECT PARSENAME(REPLACE(PARSENAME(@StringValue, 1), '_', '.'), 1)

输出将是:

510

答案 2 :(得分:2)

首先我们向后反转字符串以找到最后出现的'_'符号(因为SQL Server没有其他方法可以在另一个字符串中搜索最后一次出现的字符串,我们需要反转该字符串)。我们得到的数字减去1就是我们必须从原始字符串的右侧部分取得的符号数。

DECLARE @str nvarchar(max) = 'lid://abcde.ln.ln_dev_510'

SELECT RIGHT(@str,CHARINDEX('_',REVERSE(@str))-1)

输出:

510