Como puedo hacer???

31/10/2006 - 20:22 por jcac | Informe spam
Hola lista, tengo un sp mas o menos asi:

Create Procedure Listar
@Parametros Varchar(2000)
As
Select Campo1, Campo2 From Tabla Where Campo3 In (@Parametros)

Donde en @Parametros quiero pasar varios datos como 1, 2, 3, 4 o solo pasar
1 o 2, es decir solo un dato

Como lo puedo lograr.

Saludos

Preguntas similare

Leer las respuestas

#1 Javier Loria
31/10/2006 - 20:45 | Informe spam
Hola:
Normalmente require hacer un ciclo, mas o menos asi:
==ÞCLARE @Pos INT
DECLARE @TempList table
( Campo3 int NOT NULL)

SET @Pos=0
SET @Pos = CHARINDEX(',', @Parametrost, 1)

WHILE @Pos > 0
BEGIN
SET @Campo3 = LTRIM(RTRIM(LEFT(@Parametros, @Pos - 1)))
IF @Campo3 <> ''
BEGIN
INSERT INTO @TempList (Campo3)
VALUES (CAST(@Campo3 AS int))
END
SET @Parametros = RIGHT(@Parametros, LEN(@Parametros) - @Pos)
SET @Pos = CHARINDEX(',', @Parametros, 1)
END
Luego usas la tabla @TempList en JOINS o SELECTS.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"jcac" wrote in message
news:%23rsm5HS$
Hola lista, tengo un sp mas o menos asi:

Create Procedure Listar
@Parametros Varchar(2000)
As
Select Campo1, Campo2 From Tabla Where Campo3 In (@Parametros)

Donde en @Parametros quiero pasar varios datos como 1, 2, 3, 4 o solo
pasar 1 o 2, es decir solo un dato

Como lo puedo lograr.

Saludos

Respuesta Responder a este mensaje
#2 Alejandro Mesa
31/10/2006 - 22:03 | Informe spam
jcac,

Creas una funcion que devuelva una tabla cuyas filas son los elementos de la
lista y usas la funcion en el predicado.

Select Campo1, Campo2
From Tabla
Where Campo3 In (select value from dbo.ufn_split(@Parametros))
go

En este link se explica como hacerlo y tambien se hace una comparacion entre
los distintos metodos.

Arrays and Lists in SQL Server
http://www.sommarskog.se/arrays-in-sql.html


AMB


"jcac" wrote:

Hola lista, tengo un sp mas o menos asi:

Create Procedure Listar
@Parametros Varchar(2000)
As
Select Campo1, Campo2 From Tabla Where Campo3 In (@Parametros)

Donde en @Parametros quiero pasar varios datos como 1, 2, 3, 4 o solo pasar
1 o 2, es decir solo un dato

Como lo puedo lograr.

Saludos



Respuesta Responder a este mensaje
#3 jcac
31/10/2006 - 22:24 | Informe spam
Les agradesco a ambos, por sus respuestas.

Las aplicare y ya les comento como me fue. Muchas gracias

"jcac" escribió en el mensaje
news:%23rsm5HS$
Hola lista, tengo un sp mas o menos asi:

Create Procedure Listar
@Parametros Varchar(2000)
As
Select Campo1, Campo2 From Tabla Where Campo3 In (@Parametros)

Donde en @Parametros quiero pasar varios datos como 1, 2, 3, 4 o solo
pasar 1 o 2, es decir solo un dato

Como lo puedo lograr.

Saludos

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