none
poner "2 valores" en una variable de sql server

    Question

  • hola mi duda es la siguiente, en mi form tengo un checkedlistbox donde tengo varias colores de prendas (blanco,negro etc), alli el cliente debe seleccionar que colores quiere ver, supongamos que selecciona el blanco y negro, (yo antes lo hacia concatenando string, pero no es lo mas optimo) como puedo hacer que mi variable @var as varchar(40); set @var = ('negro','blanco');

    mi consulta quedaria asi select prenda from prendas where color in @var

    saludos, trabajo con sql server 2005 y vs 2008


    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.

    Tuesday, November 27, 2012 2:23 PM

Answers

  • Hola novato_24, revisa la siguiente liga ( Consulta usando IN )

    Lo que se me viene a la mente es que uses querys dinámicos, construye dentro de C#, asp.net o el lenguaje que estás utilizando, la cadena 'negro','blanco' y la pasas a tu procedimiento almacenado ( creo que es lo que utilizas para ejecutar el query ), y dentro del procedimiento almacenado lo ejecutas así:

    DECLARE @SQL AS VARCHAR(1000)
    
    SET @SQL = 'SELECT prenda FROM prendas WHERE color IN ( ' + @var + ' ) '
    
    EXEC( @SQL )

    Te aclaro, no es la mejor manera ( me refiero a los querys dinámicos ) pero es una opción, te sugiero la liga que te pase, en el cual Geri-Reshef explica una buena práctica.

    SALUDOS!


    Sergio Sánchez Arias

    Tuesday, November 27, 2012 2:33 PM

All replies

  • Hola novato_24, revisa la siguiente liga ( Consulta usando IN )

    Lo que se me viene a la mente es que uses querys dinámicos, construye dentro de C#, asp.net o el lenguaje que estás utilizando, la cadena 'negro','blanco' y la pasas a tu procedimiento almacenado ( creo que es lo que utilizas para ejecutar el query ), y dentro del procedimiento almacenado lo ejecutas así:

    DECLARE @SQL AS VARCHAR(1000)
    
    SET @SQL = 'SELECT prenda FROM prendas WHERE color IN ( ' + @var + ' ) '
    
    EXEC( @SQL )

    Te aclaro, no es la mejor manera ( me refiero a los querys dinámicos ) pero es una opción, te sugiero la liga que te pase, en el cual Geri-Reshef explica una buena práctica.

    SALUDOS!


    Sergio Sánchez Arias

    Tuesday, November 27, 2012 2:33 PM
  • Lo mejor para estos casos es hacer tablas de parametros y en tu consulta seleccionas los valores de estas tablas

    Saludos


    Gracias Ing. Salomon Bagdadi

    Tuesday, November 27, 2012 5:59 PM
  • asi lo he hecho pero solo probado desde sql server, es decir declaro mi variable y le asigno los campos ('blanco','negro'), pero no funciona, lo rpobare en un sp como indican y posteo lo que resulte saludos

    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.

    Friday, November 30, 2012 9:48 PM
  • que fue lo que intentaste hacer ?puedes postear el codigo ? tal vez te podamos orientar

    SALU2 !


    Sergio Sánchez Arias

    Friday, November 30, 2012 10:02 PM
  • hola sergio disculpa por no contestar he estado con mucho trabajo, a la brevedad posteare codigo y explicare que he hecho saludos

    gracias por tu interes


    si mi respuesta te ayudo votala como util, si resolvio tu duda marcala como respuesta, de esta manera ayudas a otros compañeros que tengan dudas similares.



    Friday, December 07, 2012 2:23 PM