Consultar dentro de valores separados por comas

19/11/2009 - 15:02 por DT | Informe spam
Hola a todos.
Tengo lo siguiente:

ID Nombre Atributos
1 Carlos -1,0,1,2
2 Pepita -1,2,5,12
3 Maía 0,2
4 Carlos --

Los atributos son separados por comas, estos no se repiten , van de -1 hasta
15, una persona puede no tener atributos.
Lo que necesito es una selección que diga algo así:
Mostrar los nombres de todos los que poséen el atributo 2 y el atributo 12

Muchas gracias por su valiosa ayuda.
SQL Server 2005.
 

Leer las respuestas

#1 Ruben Garrigos
19/11/2009 - 15:28 | Informe spam
Hola DT,

Antes que nada te recomendaría que no almacenaras los datos desnormalizados
separados por comas. Para hacer la búsqueda de aquellos que tienen el atributo
2 y 12 podrías hacer algo como esto:

select nombre from tabla where
','+atributos+',' like '%,2,%' and
','+atributos+',' like '%,12,%'

Como ves, una solución sucia, poco mantenible, no indexable, etc. Mala idea
almacenar los atributos de esta forma... :(

Un saludo,

Rubén Garrigós
Solid Quality Mentors

Blog: http://blogs.solidq.com/es/elrincondeldba

Hola a todos.
Tengo lo siguiente:
ID Nombre Atributos
1 Carlos -1,0,1,2
2 Pepita -1,2,5,12
3 Maía 0,2
4 Carlos --
Los atributos son separados por comas, estos no se repiten , van de -1
hasta
15, una persona puede no tener atributos.
Lo que necesito es una selección que diga algo así:
Mostrar los nombres de todos los que poséen el atributo 2 y el
atributo 12
Muchas gracias por su valiosa ayuda.
SQL Server 2005

Preguntas similares