Condicion IN con argumentos

27/01/2005 - 18:06 por Juan Sánchez | Informe spam
Saludos a todos.
Tengo un SP que ejecuto desde una aplicacion VB que contiene un SELECT
parecido a lo siguiente:

SELECT *
FROM Empleados
WHERE Oficina = @prmOficina

Esto me traería los empleados de una oficina específica de acuerdo al valor
del parámetro, pero deseo que me traiga de diferentes oficinas. Si no fuera
con parámetros sería algo como
SELECT *
FROM Empleados
WHERE Oficina IN (1, 3, 5)

Por ahora lo que se me ocurre es pasar los todos códigos de oficina a
consultar en un varchar, separados por un caracter especial (p.ej. el pipe)
digamos '1|3|5' y en el SP separar los códigos en una variable tipo TABLE,
para luego hacer la consulta.

Hay alguna otra forma????

Slds,
Juan

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
27/01/2005 - 18:18 | Informe spam
Hola Juan,

Puedes resolverlo fácilmente con «OpenXML» y un parámetro XML en tu procedimiento almacenado; échale un vistazo a este artículo:

Implementación de argumentos variables mediante XML en SQL Server 2000
Cómo pasar un número de argumentos variables a los procedimientos almacenados usando XML, evitando el uso de SQL dinámico (sp_executesql)
http://www.mvp-access.com/rubenvigo...server.pdf

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://www.mvp-access.com/rubenvigon
Respuesta Responder a este mensaje
#2 Juan Sánchez
27/01/2005 - 18:23 | Informe spam
Bue... otra opción es con el CHARINDEX

"Juan Sánchez" <jbsrec(a)hotmail.yasabes> escribió en el mensaje
news:
Saludos a todos.
Tengo un SP que ejecuto desde una aplicacion VB que contiene un SELECT
parecido a lo siguiente:

SELECT *
FROM Empleados
WHERE Oficina = @prmOficina

Esto me traería los empleados de una oficina específica de acuerdo al


valor
del parámetro, pero deseo que me traiga de diferentes oficinas. Si no


fuera
con parámetros sería algo como
SELECT *
FROM Empleados
WHERE Oficina IN (1, 3, 5)

Por ahora lo que se me ocurre es pasar los todos códigos de oficina a
consultar en un varchar, separados por un caracter especial (p.ej. el


pipe)
digamos '1|3|5' y en el SP separar los códigos en una variable tipo TABLE,
para luego hacer la consulta.

Hay alguna otra forma????

Slds,
Juan


Respuesta Responder a este mensaje
#3 Jhonny Vargas P. [MVP]
27/01/2005 - 19:12 | Informe spam
buena idea y despues lo enlazas con el

SELECT *
FROM Empleados
WHERE Oficina IN ( Select ... from Open XML ... )


Saludos,
Jhonny Vargas P.
Santiago de Chile

"Rubén Vigón" escribió en el mensaje
news:uBZ%
Hola Juan,

Puedes resolverlo fácilmente con «OpenXML» y un parámetro XML en tu
procedimiento almacenado; échale un vistazo a este artículo:

Implementación de argumentos variables mediante XML en SQL Server 2000
Cómo pasar un número de argumentos variables a los procedimientos
almacenados usando XML, evitando el uso de SQL dinámico (sp_executesql)
http://www.mvp-access.com/rubenvigo...server.pdf

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://www.mvp-access.com/rubenvigon
Respuesta Responder a este mensaje
#4 Juan Sánchez
27/01/2005 - 20:38 | Informe spam
Millón gracias.

Slds,
Juan


"Rubén Vigón" escribió en el mensaje
news:uBZ#
Hola Juan,

Puedes resolverlo fácilmente con «OpenXML» y un parámetro XML en tu
procedimiento almacenado; échale un vistazo a este artículo:

Implementación de argumentos variables mediante XML en SQL Server 2000
Cómo pasar un número de argumentos variables a los procedimientos
almacenados usando XML, evitando el uso de SQL dinámico (sp_executesql)
http://www.mvp-access.com/rubenvigo...server.pdf

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://www.mvp-access.com/rubenvigon
Respuesta Responder a este mensaje
#5 Ivan Pascual
28/01/2005 - 18:18 | Informe spam
Yo haria lo mismo...

Ivan Pascual
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida