我有一个这样的字符串:
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
提前致谢
答案 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)
我想我们也可以在不调用LEN
和SUBSTRING
方法的情况下执行此操作。
这样的事情会有所帮助:
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为position oriented
(以1开头)。
这是输出:
答案 4 :(得分:0)
使用子串函数,如
@val=substring('@val',9,'remaining char')
参见:SUBSTRING(),CHARINDEX(),PATINDEX()
参考这里
http://www.sqlinfo.net/sqlserver/sql_server_function_substring.php