select pelo nome da coluna

31/12/2008

0

Estou precisando fazer um select em uma tabela do SQL SERVER 2005 mas nao quero usar os seguintes comandos:

select * from PRODUTOS
ou
select PRD_CODIGO, PRD_NOME, PRD_VALOR, PRD_MARCA, PRD_OBS from PRODUTOS


Na verdade o que eu preciso é fazer um select somente da coluna 3 por exemplo... parecido com o [b:acbff935e8]order by 3[/b:acbff935e8] (ordena pela coluna 3 que no exemplo acima é o campo [b:acbff935e8]PRD_VALOR[/b:acbff935e8])

tentei isso mas sem resultados:
select 3 from PRODUTOS



Carlos_tedex

Carlos_tedex

Responder

Posts

07/01/2009

Daykas

Prezado! Bom dia.

Substitua o 3 pelo nome da coluna.


Responder

09/01/2009

Carlos_tedex

Substitua o 3 pelo nome da coluna.


Amigo acho que vc não entendeu direito... o que eu preciso é justamente fazer um select via SQL pelo indice do campo e nao pelo nome do campo...

Postei essa mesma duvida em outro forum caso queira dar uma olhada...

http://www.activedelphi.com.br/forum/viewtopic.php?t=45295&sid=2f1689642a15a36624209fd4fdc41d5f


Responder

12/01/2009

Emerson Nascimento

acho que só dá pra fazer assim:
declare @coluna varchar(255)
declare @tabela varchar(255)
declare @colid int

set @colid = 1
set @tabela = ´cliente´

select @coluna = ltrim(rtrim(sc.name))
from sysobjects so
inner join syscolumns sc on (sc.id = so.id)
where so.name = @tabela and sc.colid = @colid

exec(´select ´+@coluna+´ from ´+@tabela)



Responder

12/01/2009

Emerson Nascimento

complementando...

basta trocar os valores de @colid e @tabela para obter o resultado desejado.


Responder

12/01/2009

Carlos_tedex

basta trocar os valores de @colid e @tabela para obter o resultado desejado.


BINGO!!!

Caro emerson.en, enfim alguem me respondeu o que eu queria... essa função ira me ajudar muito na minha logica cara... valew mesmo amigo!


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar