我有一个这样的短语:
DECLARE @helloworld NVARCHAR(100),@partHello NVARCHAR(10)
SET @helloworld='HelloWorld=10&HelloSQL=20'
我想取'='和'&'之间的数字,我使用了这个陈述,但它不起作用......它返回:
10&
这是我使用的代码:
DECLARE @helloworld NVARCHAR(100),@partHello NVARCHAR(10)
SET @helloworld='HelloWorld=10&HelloSQL=20'
SET @partHello =
SUBSTRING(@helloworld,CHARINDEX('=',@helloworld,0),CHARINDEX('&',@helloworld,0)-CHARINDEX('=',@helloworld,0))
PRINT @partHello
我希望它是动态的..如果有一个大于10的数字,那么它将占用所有数字。我希望它从'='开始,到'&'
结束任何帮助?
答案 0 :(得分:3)
试试这个:
SET @partHello =
SUBSTRING(@helloworld,CHARINDEX('=',@helloworld,0)+1,CHARINDEX('&',@helloworld,0)-(CHARINDEX('=',@helloworld,0))-1)
PRINT @partHello
答案 1 :(得分:3)
我会使用以下内容:
SELECT SUBSTRING(@helloWorld,
CHARINDEX('=',@helloworld,0)+1,
CHARINDEX('&',@helloworld,0)-CHARINDEX('=',@helloworld,0)-1)
答案 2 :(得分:0)
有解决方案:
DECLARE @helloworld NVARCHAR(100),@partHello NVARCHAR(10)
SET @helloworld='HelloWorld=320&HelloSQL=20'
SET @partHello =
SUBSTRING(@helloworld,CHARINDEX('=',@helloworld,0)+1,CHARINDEX('&',@helloworld,0) -(CHARINDEX('=',@helloworld,0)+1))
PRINT @partHello