Declare @A Int
Declare @B Int
Select @A=Left('25;1;25;2;0;0;1;0',CharIndex(';','25;1;25;2;0;0;1;0')-1),@B=Substring('25;1;25;2;0;0;1;0',CharIndex(';','25;1;25;2;0;0;1;0')+1,CharIndex(';','25;1;25;2;0;0;1;0',CharIndex(';','25;1;25;2;0;0;1;0')+1)-CharIndex(';','25;1;25;2;0;0;1;0')-1)
Select @A,@B

解决方案 »

  1.   

    create proc t
    @s nvarchar(1000),
    @a nvarchar(100) output,
    @b nvarchar(100) output
    as
       declare @temp nvarchar(1000)
       declare @ta nvarchar(100)
       declare @tb nvarchar(100)
       set @temp=@s
       set @ta=substring(@temp,1,charindex(';',@temp)-1)
       set @temp=stuff(@temp,1,charindex(';',@temp),'')
       set @tb=substring(@temp,1,charindex(';',@temp)-1)  
       set @a=@ta
       set @b=@tb
    godeclare 
    @a nvarchar(100),
    @b nvarchar(100)exec t '25;1;25;2;0;0;1;0',@a output,@b outputselect @a,@bdrop proc t