Como separar 1,4,7,3,23,32,11 en diferentes registros

10/11/2014 - 23:10 por kouyakla | Informe spam
Buenas tardes

Tengo una duda en sql server 2012 y si alguien me puede ayudar a solucionarla seria excelente.

Tengo un reporte en el que se permite múltiple selección en los parámetros, es decir, el usuario puede elegir 2,3,12 o 50 valores para filtrar la información que desee.
Cuando el usuario filtra los valores que desea, el valor que me entrega el reporte en el parametro seria 1,11,34,23,5 como un ejemplo, en este caso el usuario filtro 5 valores solamente, pero ahora necesito tomar estos datos e insertar cada numero en un registro distinto de una tabla, lo que necesito es que en una tabla quede asi:

Valores
1
11
34
23
5

la variable en la que se carga el valor del reporte es @dep y si le hago un select "select @dep" me entrega 1,11,34,23,5

COMO PUEDO HACER PARA SEPARAR ESTOS NUMEROS Y VOLVERLOS REGISTROS DISTINTOS (por favor recordar que no siempre son los mismos números y la misma cantidad)
 

Leer las respuestas

#1 kouyakla
13/11/2014 - 17:35 | Informe spam
cpb.sos escribió el 13/11/2014 09:07 :
1. Debes tener una tabla con la lista completa de valores (ejemplo ListaVal)
2. Crear una tabla temporal:
select Valor into #ListaVal from ListaVal where Charindex(Valor,
@ListaVal)<>0
3 Select * from #ListaVal


El lunes, 10 de noviembre de 2014 17:10:06 UTC-5, kouyakla escribió:
Buenas tardes

Tengo una duda en sql server 2012 y si alguien me puede ayudar a solucionarla
seria excelente.

Tengo un reporte en el que se permite múltiple selección en los
parámetros, es decir, el usuario puede elegir 2,3,12 o 50 valores para
filtrar la información que desee.
Cuando el usuario filtra los valores que desea, el valor que me entrega el
reporte en el parametro seria 1,11,34,23,5 como un ejemplo, en este caso el
usuario filtro 5 valores solamente, pero ahora necesito tomar estos datos e
insertar cada numero en un registro distinto de una tabla, lo que necesito es
que en una tabla quede asi:

Valores
1
11
34
23
5

la variable en la que se carga el valor del reporte es @dep y si le hago un
select "select @dep" me entrega 1,11,34,23,5

COMO PUEDO HACER PARA SEPARAR ESTOS NUMEROS Y VOLVERLOS REGISTROS DISTINTOS
(por
favor recordar que no siempre son los mismos números y la misma
cantidad)




Gracias cbs.sos me ayudas mucho

Tu respuesta es casi perfecta, solo tengo una falla: En la variable pueden cargarse los datos 9,14,23,33 y corriendo la siguiente consulta que es la que estoy utilizando

select id into #valor from valor
where CHARINDEX(id,@dep) <> 0
select * from #valor

me trae tambien los numeros 1,2,3,4 puesto que el charindex los toma como numeros aparte
Es decir me esta entregando los siguientes registros
1
2
3
4
9
14
23
33

Como puedo decirle a la consulta que haga un filtro solo para la combinación de números que se necesitan?

Preguntas similares