Desde el comentario de kilómetros por encima de ...
yo sé que no es estado en el que coma seperated, pero si se trataba de un CSV o incluso si lo tienes espacio separados que podría hacer lo siguiente.
DECLARE @SomeTest varchar(100) --used to hold your values
SET @SomeTest = (SELECT '68,72,103') --just some test data
SELECT
LoginID --change to your column names
FROM
Login --change to your source table name
INNER JOIN
( SELECT
*
FROM fn_IntegerInList(@SomeTest)
) n
ON
n.InListID = Login.LoginID
ORDER BY
n.SortOrder
y luego crear fn_IntegerInList()
:
CREATE FUNCTION [dbo].[fn_IntegerInList] (@InListString ntext)
RETURNS @tblINList TABLE (InListID int, SortOrder int)
AS
BEGIN
declare @length int
declare @startpos int
declare @ctr int
declare @val nvarchar(50)
declare @subs nvarchar(50)
declare @sort int
set @sort=1
set @startpos = 1
set @ctr = 1
select @length = datalength(@InListString)
while (@ctr <= @length)
begin
select @val = substring(@InListString,@ctr,1)
if @val = N','
begin
select @subs = substring(@InListString,@startpos,@[email protected])
insert into @tblINList values (@subs, @sort)
set @startpos = @ctr+1
end
if @ctr = @length
begin
select @subs = substring(@InListString,@startpos,@[email protected])
insert into @tblINList values (@subs, @sort)
end
set @ctr = @ctr +1
set @sort = @sort + 1
end
RETURN
END
De esta manera su función crea una tabla que tiene un orden de clasificación a saber, SortOrder
y el ID o el número que está de paso en Por supuesto, puede modificar esto. para que esté buscando espacio
en lugar de ,
valores. De lo contrario, Martin tiene la idea correcta en su respuesta. Tenga en cuenta que en mi ejemplo estoy usando una de mis tablas, por lo que tendrá que cambiar el nombre Login
a lo que sea que esté tratando.
+1, o si por csv, divida en una variable @table con una columna de identidad a la que puede unir y luego ordene por –
@KM entonces OP necesita escribir un procedimiento de tienda para una simple selección –
@LuisSiquot - They ya están usando un procedimiento almacenado. Pero deberían usar consultas parametrizadas incluso si no lo fueran. Hay un montón de funciones de tabla dividida que operan como lo sugiere KM a las que el OP podría unirse, pero si no se necesita compatibilidad con el 2005, los TVP serán mejores. –