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
 

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

Preguntas similares