SQL Server - Mostrar nombre de campo (texto+parametro)

   
Vista:

Mostrar nombre de campo (texto+parametro)

Publicado por César (2 intervenciones) el 07/02/2012 15:20:28
Agradezco de antemano su ayuda.

Tengo 1 tabla con los campos: ciudad, caja1 y caja2.
Cuando se desea leer información de la caja1 solo lea de la caja1 y si desea leer información de la caja2 solo lea de la caja2.

Yo lo he hecho asi:

DECLARE @pcaja varchar(1)

SET @pcaja= 1

SELECT top 10 ciudad, 'caja'+@pcaja
FROM bodega
WHERE ('caja'+@pcaja )<100

pero no me resulta

RESULTADO CORRECTO SERIA:

Si parametro=1

SELECT ciudad, caja1
FROM cuadrado
WHERE caja1<100

Si parametro=2

SELECT ciudad, caja2
FROM cuadrado
WHERE caja2<100
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Mostrar nombre de campo (texto parametro)

Publicado por Isaias (3182 intervenciones) el 08/02/2012 00:21:36
Hay 2 formas de hacerlo, QUERY DINAMICO o bien, con un simple IF

IF @pcaja= 1
BEGIN
SELECT ciudad, caja1
FROM cuadrado
WHERE caja1<100
END

IF @pcaja= 2
BEGIN
SELECT ciudad, caja2
FROM cuadrado
WHERE caja2<100
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar nombre de campo (texto parametro)

Publicado por César (2 intervenciones) el 18/02/2012 13:34:52
Muchas gracias Isaias, esta ok.
Que Dios te bendiga y sigas apoyando con tus conociminetos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Mostrar nombre de campo (texto parametro)

Publicado por jams (75 intervenciones) el 02/03/2012 23:26:01
es mejor usar la segunda recomendacion que hace Isaias, sin embargo no comenta al respecto,aunque un poco tarde espero le sirva a alguien

create table bodega(ciudad varchar(10),caja1 int,caja2 int)
declare @sql varchar(1000)
declare @pcaja varchar(10)




insert into bodega values('x',10,5)
insert into bodega values('y',20,10)
insert into bodega values('z',40,20)

select * from bodega




set @pcaja='2'


exec ('select top 2 ciudad,caja' + @pcaja + ' from bodega WHERE (caja'+@pcaja + ' )< 50')


drop table bodega



Saludos y suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar