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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Mostrar nombre de campo (texto parametro)

Publicado por Isaias (4558 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 (93 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