[highlight=sql]CREATE FUNCTION iter$simple_intlist_to_tbl (@list nvarchar(MAX))
RETURNS @tbl TABLE (number int NOT NULL) AS
BEGIN
DECLARE @pos int,
@nextpos int,
@valuelen int
SELECT @pos = 0, @nextpos = 1
WHILE @nextpos > 0
BEGIN
SELECT @nextpos = charindex(',', @list, @pos + 1)
SELECT @valuelen = CASE WHEN @nextpos > 0
THEN @nextpos
ELSE len(@list) + 1
END - @pos - 1
INSERT @tbl (number)
VALUES (convert(int, substring(@list, @pos + 1, @valuelen)))
SELECT @pos = @nextpos
END
RETURN
END[/highlight]
USO
[highlight=sql]SELECT * FROM [DB_PoC].[dbo].[iter$simple_intlist_to_tbl] ('1,2,3')
GO[/highlight]
RESULTADO
[highlight=sql]1
2
3[/highlight]
Fuente: http://shellrootsecurity.blogspot.co...-en-mssql.html



LinkBack URL
About LinkBacks

Citar
