SQL - 将字符串剪切为字符串(仅限第一个字符串)

时间:2012-11-21 05:21:14

标签: sql sql-server

我有一个这样的字符串:

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

现在我需要只剪切字符串直到第一个结尾和。其中id长度可以是1-100000。所以我可以修改一个长度。
现状:id=1 and Name=abc and Address=NY and age=32
预期结果:Name=abc and Address=NY and age=32

提前致谢

5 个答案:

答案 0 :(得分: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))

其他链接

答案 1 :(得分: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))

答案 2 :(得分:1)

如果我理解了你的意思,你应该得到这样的东西:

substring(@val , CHARINDEX(@val) + 4, len(@val))

答案 3 :(得分:1)

我想我们也可以在不调用LENSUBSTRING方法的情况下执行此操作。

这样的事情会有所帮助:

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

查看how STUFF works

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

这是输出:

enter image description here

答案 4 :(得分:0)

使用子串函数,如

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

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

参考这里

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