Manipulando dados de uma tabela

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
  

Mensagemem Sex, 12 Dez 2008 4:49 pm

Preciso criar um select que altere o resultado do dado na consulta de acordo com o valor do campo na tabela.
Exemplo: Campo COR - Tipo Varchar(2)1 - Valores Possíveis: B, P,A,I,R
Portanto, se campo COR = "B", exibir "Branca"
Se campo COR = "P", exibir "Preta"
Se campo COR = "A", exibir "Amarela"
Se campo COR = "I", exibir "I=Indigena"
Se campo COR = "R", exibir "Parda"
Qual a sintaxe do comando para atender essa necessidade?
adrianatoscano
Localização: Natal/RN

Mensagemem Sex, 12 Dez 2008 4:58 pm

Pra isso se usa o DECODE (pra valores fixos)

Código: Selecionar todos
select
  DECODE( campo, 'P', 'Preto', 'B', 'Branco', 'A', 'Amarelo') COR
from sua tabela


Mas o ideal é que essas cores estejam em uma TABELA. Daí você pode simplesmente fazer um JOIN entre as duas e pegar a cor. Pois dessa forma, não fica engessado dentro do programa. (tipo, é possível alterar e cadastrar novas cores, etc)
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered

Mensagemem Seg, 15 Dez 2008 10:00 am

CASE WHEN CAMPO = X THEN 'COR'
WHEN CAMPO = Y THEN 'COR' END
manoel872
Localização: Uberlândia - MG


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


      Voltar para SQL

      Quem está online

      Usuários navegando neste fórum: Bing [Bot] e 1 visitante