0

我有一个这样的字符串:

DECLARE @val nvarchar(max)
set @val='id=1 and Name=abc and Address=NY and age=32' 

现在我只需要将字符串剪切到第一个结尾, .here id 长度可以是 1-100000。所以我可以固定一个长度。
目前情况:id=1 and Name=abc and Address=NY and age=32
预期结果:Name=abc and Address=NY and age=32

提前致谢

4

5 回答 5

2
DECLARE @val NVARCHAR(MAX)
SET @val='id=1 and Name=abc and Address=NY and age=32' 
SELECT SUBSTRING(@val, PATINDEX('% and%', @val) + 4, LEN(@val))

其他链接

于 2012-11-21T05:43:30.880 回答
1

如果我正确理解你在这样的事情之后应该得到你想要的东西:

substring(@val , CHARINDEX(@val) + 4, len(@val))
于 2012-11-21T05:47:59.167 回答
1

我想我们也可以在不调用LENandSUBSTRING方法的情况下做到这一点。

这样的事情会有所帮助:

DECLARE @val nvarchar(max)
set @val='id=1 and Name=abc and Address=NY and age=32' 

Select @val as OriginalValue
select stuff(@val,1,charindex('d ',@val) + 1,'') as ExpectedResult

我们需要一个STUFF方法调用以及CHARINDEX.

查看STUFF 的工作原理

请记住: STUFF 是position oriented(以 1 开头)。

这是输出:

在此处输入图像描述

于 2012-11-21T06:36:44.583 回答
1
DECLARE @val nvarchar(max)
DECLARE @val1 int

set @val='id=1 and Name=abc and Address=NY and age=32' 

set @val1=CHARINDEX('Name', @val)
select val2=SUBSTRING(@val,@val1,LEN(@val)-(@val1-1))
于 2012-11-21T05:44:27.613 回答
0

使用子字符串函数

@val=substring('@val',9,'remaining char')

参见:SUBSTRING()、CHARINDEX()、PATINDEX()

参考这里

http://www.sqlinfo.net/sqlserver/sql_server_function_substring.php

于 2012-11-21T05:34:32.240 回答