ps el caso para la araña lo resolvemos con esto :)
Código SQL:
Ver originalCREATE FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(2000))
RETURNS @RtnValue TABLE
(
Id INT IDENTITY(1,1),
DATA nvarchar(100)
)
AS
BEGIN
DECLARE @Cnt INT, @SplitOn nvarchar(5)
SET @SplitOn = ';'
SET @Cnt = 1
While (Charindex(@SplitOn,@applicationid)>0)
BEGIN
INSERT INTO @RtnValue (DATA)
SELECT
DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-1)))
SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+1,len(@applicationid))
SET @Cnt = @Cnt + 1
END
INSERT INTO @RtnValue (DATA)
SELECT DATA = ltrim(rtrim(@applicationid))
RETURN
END
y usando la funcion que acabamos de crear:
DECLARE @valor INT
SELECT @valor=id FROM [SplitApplication]('1;2;;;') WHERE DATA LIKE '%2%'
SELECT * FROM [SplitApplication]('20;-60;0;0;0') WHERE id=@valor
lo cual nos regresa el famoso -60
si se cambia la posicion del numero 2 en la primer cadena entonces cambia el valor del segundo SELECT :) ahora es que nuestro amig@ lo ponga a prueba para sus datos :)
saludos!