[firebase-br] SELECT COM CASE

Eduardo Bahiense eduardo em icontroller.com.br
Sáb Jan 19 17:41:12 -03 2008


Olá Anderson

REGIAO é um alias e vc não pode se referir a um alias na cláusula WHERE 
desta forma. No seu caso, você tem duas opções:

1. Se for FB 2.x, utilizar um SELECT FROM SELECT
    SELECT REGIAO FROM
	(SELECT CASE ... END AS REGIAO)
    WHERE REGIAO = 'Desconhecida'

2. Criar uma tabela UFS com os campos SIGLA, REGIAO (e outros) e usar 
uma consulta do tipo:
    SELECT
       COALESCE(B.REGIAO, 'Desconhecida')
    FROM CLI A
         LEFT JOIN UFS B ON A.UF=B.UF
    WHERE
         B.UF IS NULL

Anderson Miranda Barrozo escreveu:
> Boa tarde,
>  
>      Galera, porque a clausula where nao esta localizando o campo REGIAO. Será que é devido fazer parte da instrução case ?
>  
> select case   when (cli.CliUf in ('RS','SC','PR')) then 'Sul'   when (cli.CliUf in ('SP','RJ','ES','MG')) Then 'Sudeste'   when (cli.CliUf in ('MT','MS','GO','DF')) Then 'Centro-Oeste'   when (cli.CliUf in ('AC','RO','AM','RR','AP','PA','TO')) Then 'Norte'   when (cli.CliUf in ('MA','PI','CE','RN','PB','PE','AL','SE','BA')) Then 'Nordeste'   else 'Região Desconhecida'   end as REGIAO, CliNome, CliCidade From Cliente cli Where REGIAO='Região Desconhecida'
>  
> Anderson Miranda
> _________________________________________________________________
> Conheça o Windows Live Spaces, a rede de relacionamentos do Messenger!
> http://www.amigosdomessenger.com.br/
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista