[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