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
adrianatoscano
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qua, 10 Set 2008 4:08 pm
Localização: Natal/RN

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?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

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

Pra isso se usa o DECODE (pra valores fixos)

Selecionar tudo

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)
manoel872
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qui, 30 Out 2008 10:31 am
Localização: Uberlândia - MG

CASE WHEN CAMPO = X THEN 'COR'
WHEN CAMPO = Y THEN 'COR' END
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 17 visitantes