CASE com IB6

Firebird

05/01/2004

Olá pessoal !

Estou com D5 + IB6 e está dando um erro q nao estou conseguindo descobrir:

SELECT PesCod, PesObs=CASE
WHEN PesObs = NULL THEN ´X´
ELSE PesObs = ´Y´
END
FROM Pessoas

O SQL retorna dizendo que o = está com problemas ...
Ele nao aceita esta sintaxe ?? Senao, como posso resolver este problema ??

Obrigada e no aguardo.
Martinham.


Martinham

Martinham

Curtidas 0

Respostas

Travain

Travain

05/01/2004

Cara, o comando CASE só funciona com o Firebird 1.5 e a sintaxe também está errada. Não existe o igual ´=´ antes do CASE.

Até mais.


GOSTEI 0
Martinham

Martinham

05/01/2004

Tem outra forma de fazer este SELECT, alterando o dado deste campo ??

Mas valeu ...
Obrigada.

Martinham


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

05/01/2004

Colega,

A sintaxe correta para Case seria:
SELECT PesCod, PesObs=CASE 
WHEN PesObs IS NULL THEN ´X´ 
ELSE ´Y´ 
END 
FROM Pessoas 


Você pode obter o resultado utilizando o UNION ALL, por exemplo:

SELECT PesCod, "X" as PesObs FROM pessoas
WHERE PesObs IS NULL
UNION ALL
SELECT PesCod, "Y" as PesObs FROM pessoas
WHERE PesObs IS NOT NULL



GOSTEI 0
POSTAR