problema com o case
select (coalesce(nome_razao,´´) || case when nome_razao <> ´´ and nome_fantasia <> ´´ then ´ --> ´ else ´´ end || coalesce(nome_fantasia,´´)) as Campo1Result, cod_cliente as Codigo from clientes
só quero que apareça este símbolo --> quando os campos nome_razao e nome_fantasia não forem nulos.
o problema é o seguinte: mesmo quando a primeira condição falha, ou seja, vai entrar no else, fica com espaços fazios do tamanho do símbolo -->
só quero que apareça este símbolo --> quando os campos nome_razao e nome_fantasia não forem nulos.
o problema é o seguinte: mesmo quando a primeira condição falha, ou seja, vai entrar no else, fica com espaços fazios do tamanho do símbolo -->
Raserafim
Curtidas 0
Respostas
Emerson Nascimento
19/01/2006
tente assim:
select coalesce(nome_razao,nome_fantasia) || (case when not (nome_razao is null) and not (nome_fantasia is null) then ´ --> ´ else ´´ end) || (case when nome_razao is null then ´´ else coalesce(nome_fantasia,´´) end) as Campo1Result, cod_cliente as Codigo from clientes
GOSTEI 0
Raserafim
19/01/2006
emerson, a sua forma deu quanse certo. quando o campo estava em branco e não nulo não funcionava tb.
mas vc me deu uma luz para fazer de outra forma. acabei fazendo assim:
mas vc me deu uma luz para fazer de outra forma. acabei fazendo assim:
select (case when (not (nome_razao is null) and (nome_razao <> ´´)) and (not (nome_fantasia is null) and (nome_fantasia <> ´´)) then nome_razao || ´ --> ´ || nome_fantasia when ((nome_razao is null) or (nome_razao = ´´)) and (not (nome_fantasia is null) and (nome_fantasia <> ´´)) then nome_fantasia when (not (nome_razao is null) and (nome_razao <> ´´)) and ((nome_fantasia is null) or (nome_fantasia = ´´)) then nome_razao end) as Campo1Result, cod_cliente as PK from clientes
GOSTEI 0
Emerson Nascimento
19/01/2006
´limpe´ um pouco mais sua instrução:
select (case when (coalesce(nome_razao,´´) <> ´´) and (coalesce(nome_fantasia,´´) <> ´´) then nome_razao || ´ --> ´ || nome_fantasia when (coalesce(nome_razao,´´) = ´´) and (coalesce(nome_fantasia,´´) <> ´´) then nome_fantasia when (coalesce(nome_razao,´´) <> ´´) and (coalesce(nome_fantasia,´´) = ´´) then nome_razao end) as Campo1Result, cod_cliente as PK from clientes
GOSTEI 0
Raserafim
19/01/2006
valeu emerson pela atenção
GOSTEI 0