[firebase-br] Ref. Select / CASE

Elton da Motta Barbosa embarbosa em gmail.com
Qui Dez 4 09:19:57 -03 2008


dois exemplos abaixo retirados de http://ibexpert.net/ibe/index.php?n=Doc.CASE:

 SELECT
 o.ID,
 o.Description,
 CASE o.Status
 WHEN 1 THEN 'confirmed'
 WHEN 2 THEN 'in production'
 WHEN 3 THEN 'ready'
 WHEN 4 THEN 'shipped'
 ELSE 'unknown status  || o.Status || '
 END
 FROM Orders o;
 Searched example:
 SELECT
 o.ID,
 o.Description,

 CASE
 WHEN (o.Status IS NULL) THEN 'new'
 WHEN (o.Status = 1) THEN 'confirmed'
 WHEN (o.Status = 3) THEN 'in production'
 WHEN (o.Status = 4) THEN 'ready'
 WHEN (o.Status = 5) THEN 'shipped'
 ELSE 'unknown status  || o.Status || '
 END
 FROM Orders o;

apenas para verificar o funcionamento só do CASE tente:

Select
CASE NE.Ent_Situacao
   WHEN 1 THEN 'Aberto',
   WHEN 2 THEN 'Parcial',
   WHEN 3 THEN 'Total',
   ELSE 'Desconhecido'
END as situacao
from NOTAENTRADA NE

isso reduzirá o número de possíveis erros. se funcionar, vá
adicionando os campos e condições um por um e veja quando pára de
funcionar.
Também verifique se o dialeto do BD está correto (3 no caso de
Firebird 2.x). No IB Expert, Database Registration Info, verifique se
o "server version" está correto para o Firebird instalado, visto que
ele limita o q o SQL Editor pode fazer de acordo com o Servidor
(embora acho q não seja isso, mas.... :)




Mais detalhes sobre a lista de discussão lista