Usuário com melhor resposta
Trazer o valor de uma coluna de acordo com a condicao de uma outra

Pergunta
-
Olá a todos,
Estou desenvolvendo um script simples, porém me deparei com uma situação que sei que pode ser resolvida através do If, mas acredito que possa existir uma maneira mais simples (e talvez mais correta) de se fazer, é o seguinte:
Com um select simples preciso trazer as colunas Nome, RG,ORGAOEXP, DATAEXP, CPF, DATANASC e o telefone CELULAR do cliente, ai que está o problema, pois a estrutura da tabela encontra-se assim:
FORMACONTATO1 FORMACONTATO2 FORMACONTATO3 CONTATO1 CONTATO2 CONTATO3 ----------- ------------- -------------- ---------- ----------- ------------ Residencial Celular Comercial 1122443355 11945678910 1122433456
Então, eu devo trazer o CONTATO 2 que é o contato correspondente a FORMA DE CONTATO de celular, no sistema estes campos são editaveis, então isso varia de cadastro para cadastro, tem registro que o contato 1 é o celular, em outros o 3 e assim por diante.
Existe alguma forma de trazer somente o contato correspondente a forma de contato CELULAR sem ser pelo If?
Agradeço a atenção e colaboração de todos.
- Editado otaviinn terça-feira, 17 de abril de 2018 19:03 erro ortografico
Respostas
-
Boa tarde,
Acredito que dentro da query seja o caso de utilizar o Case. Ex:
select NOME, RG, CASE WHEN FORMACONTATO1 = 'Celular' THEN CONTATO1 WHEN FORMACONTATO2 = 'Celular' THEN CONTATO2 WHEN FORMACONTATO3 = 'Celular' THEN CONTATO3 END AS CELULAR from TABELA
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta otaviinn terça-feira, 17 de abril de 2018 19:29
Todas as Respostas
-
Boa tarde,
Acredito que dentro da query seja o caso de utilizar o Case. Ex:
select NOME, RG, CASE WHEN FORMACONTATO1 = 'Celular' THEN CONTATO1 WHEN FORMACONTATO2 = 'Celular' THEN CONTATO2 WHEN FORMACONTATO3 = 'Celular' THEN CONTATO3 END AS CELULAR from TABELA
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta otaviinn terça-feira, 17 de abril de 2018 19:29
-