Usuário com melhor resposta
alterar conteúdo de conluna com resultado igual a NULL

Pergunta
-
Bom dia!
Gostaria novamente da ajuda de vocês.
Bem estou tendo que desenvolver uma view que necessita basicamente das seguintes informações
Descricao, data, valor, centrocusto, detalhecc
consegui fazer essa consulta porém algumas colunas estao apresentando em detalhecc = null e queria substituir isso por "Outros" como poderia fazer?
Tentei da seguinte forma e mesmo assim continua apresentando o nome nullSELECT Descricao, data, valor, centrocusto, detalhecc (CASE WHEN detalhecc = 'NULL' THEN 'OUTROS' ELSE detalhecc END) as nova_DESC FROM dbo.detalheContabil LEFT OUTER JOIN cad_corporativo ON Conta COLLATE DATABASE_DEFAULT = id_conta COLLATE DATABASE_DEFAULT LEFT OUTER JOIN cad_corporativo ON item = id_dre_ccorporativo WHERE data >= '20160101' AND data <= '20160131' ORDER BY ORDEM
Resultado que esta sendo mostrado:
Descricao --- data --- valor --- detalhecc
abc --- 20160101--- 50 --- lucro
abcde ---- 20160102 ---100 --- NULL
....
Como queria que aparecesse:
Descricao --- data --- valor --- detalhecc
abc --- 20160101--- 50 --- lucro
abcde ---- 20160102 ---100 --- Outros
Respostas
-
Carine,
Para definir um valor alternativo em caso de valor nulo, use a função COALESCE (https://msdn.microsoft.com/pt-br/library/ms190349(v=sql.110).aspx).
SELECT Descricao, data, valor, centrocusto, COALESCE(detalhecc, 'OUTROS') as nova_DESC FROM dbo.detalheContabil LEFT OUTER JOIN cad_corporativo ON Conta COLLATE DATABASE_DEFAULT = id_conta COLLATE DATABASE_DEFAULT LEFT OUTER JOIN cad_corporativo ON item = id_dre_ccorporativo WHERE data >= '20160101' AND data <= '20160131' ORDER BY ORDEM
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Editado Juliano Nunes Silva Oliveira terça-feira, 8 de novembro de 2016 18:13
- Sugerido como Resposta Wesley Neves terça-feira, 8 de novembro de 2016 18:18
- Marcado como Resposta carine.couto terça-feira, 8 de novembro de 2016 18:22
Todas as Respostas
-
Carine,
Para definir um valor alternativo em caso de valor nulo, use a função COALESCE (https://msdn.microsoft.com/pt-br/library/ms190349(v=sql.110).aspx).
SELECT Descricao, data, valor, centrocusto, COALESCE(detalhecc, 'OUTROS') as nova_DESC FROM dbo.detalheContabil LEFT OUTER JOIN cad_corporativo ON Conta COLLATE DATABASE_DEFAULT = id_conta COLLATE DATABASE_DEFAULT LEFT OUTER JOIN cad_corporativo ON item = id_dre_ccorporativo WHERE data >= '20160101' AND data <= '20160131' ORDER BY ORDEM
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Editado Juliano Nunes Silva Oliveira terça-feira, 8 de novembro de 2016 18:13
- Sugerido como Resposta Wesley Neves terça-feira, 8 de novembro de 2016 18:18
- Marcado como Resposta carine.couto terça-feira, 8 de novembro de 2016 18:22
-
-
Apenas para documentação e conhecimento de todos, embora no seu caso ambos funcionem, COALESCE e ISNULL podem ter resultados diferentes, mas aí é conversa para outra thread.
Documentação: https://msdn.microsoft.com/en-us/library/ms190349.aspx?f=255&mspperror=-2147217396#Anchor_5
If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".
Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".
- Sugerido como Resposta Junior Galvão - MVPMVP quarta-feira, 9 de novembro de 2016 13:20