Não exibir campo se o adjacente for null [RESOLVIDO]

1. Não exibir campo se o adjacente for null [RESOLVIDO]

Igor Alvim
AlvimIgor

(usa Ubuntu)

Enviado em 14/08/2019 - 08:34h

Boa dia!

Criei esse select no banco:
select 
-- algumas linhas anteriores

max(decode(rownum,1,obter_descricao_procedimento(med.cd_procedimento, med.ie_origem_proced))) || ' ...... ' || max(decode(rownum,1,med.ds_posologia)) med01,
'CID: ' || max(decode(rownum,1,med.cd_cid_principal)) || ' - ' || max(decode(rownum,1,obter_desc_cid(med.cd_cid_principal))) CID1

-- algumas linhas depois
from sus_laudo_medicamento med,
sus_laudo_paciente pac
where med.nr_seq_laudo_sus = pac.nr_seq_interno
and pac.nr_seq_interno = :nr_sequencia


O problema que tenho é que se o atributo 'med.ds_posologia' for null, não gostaria que aparecesse o ' ...... ', apenas o med.cd_procedimento.
Da mesma forma, só aparecer o "CID: " o atributo 'med.cd_cid_principal' não for nulo.

Existe alguma possibilidade? Preciso muito conseguir imprimir isso.

Obrigado!


  


2. Respondendo minha própria pergunta:

Igor Alvim
AlvimIgor

(usa Ubuntu)

Enviado em 24/09/2019 - 18:59h

Usei a 'case when' para detectar se estava em branco ou não o atributo com o nome do medicamento.. e o 'nvl' para trazer um resultado 0 quando não tinha valor o atributo de quantidade do medicamento.

Segue select abaixo:
select 	
case
when max(decode(rownum,1,obter_descricao_procedimento(med.cd_procedimento, med.ie_origem_proced))) is null then ''
else
max(decode(rownum,1,obter_descricao_procedimento(med.cd_procedimento, med.ie_origem_proced))) || ' ...... ' || max(decode(rownum,1,(nvl(qt_proced_1_mes,0) + nvl(qt_proced_2_mes,0) + nvl(qt_proced_3_mes,0)))) || ' \Trim'
end as med01,







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts