SQL - selecao dinamica de campos |
Top Previous Next |
|
Existem varias maneiras de resolver isto.
Essa eu testei (Flavio)
Select Codigo,Descricao,T1 as Escolhido,T1, T2 From Produtos Where Codigo>2
Union
Select Codigo,Descricao,T2 as Escolhido, T1, T2 From Produtos Where Codigo<=2
Order by Escolhido
// Aqui mostra na coluna "Escolhido" o valor T1 quando o código for > 2 e valor T2 quando o código for < = 2
------------------------------------------------------------ SELECT CASE WHEN "Campo Lógico" > 0 THEN "Preço 1" ELSE "Preco 2" END FROM "Produtos" ------------------------------------------------------------ Em Oracle seria assim: Select Decode(CampoLogico, Preco1, preco2) from produtos. ------------------------------------------------------------ Em Access: Select if(CampoLogico, Preco1, preco2) from produtos ------------------------------------------------------------ Em Access em portugues: Select Semed(CampoLogico, Preco1, preco2) from produtos ------------------------------------------------------------ Porém vc devia pensar um pouco no seu modelo de dados. Este tipo de consulta normalmente é resultado de modelagem falha. ------------------------------------------------------------ Se quiser você poderá fazer uma união de duas consultas. Exemplo:
Select Preco1 Where CampoLogico From <Tabela>
Union
Select Preco2 Where CampoLogico From <Tabela> |