[firebase-br] Dúvida cláusula where com operador or e/ou and

Alysson Azevedo agalysson em gmail.com
Qua Jan 27 14:24:43 -03 2010


Para os casos 1 e 2, uma será tratado assim:

where (cid.cidade = 'NOVO HAMBURGO')
   or (cid.cidade = 'ESTANCIA VELHA')
    or (cid.cidade = 'CAMPO BOM')
   or (cid.cidade = 'SAO LEOPOLDO' and v.ano<>2010)
repare q apenas recebe a condição <> 2010, pro resto, essa condição não faz
efeito...
ja o 3,
where (cid.cidade = 'NOVO HAMBURGO'
    or  cid.cidade = 'ESTANCIA VELHA'
   or  cid.cidade = 'CAMPO BOM'
   or  cid.cidade = 'SAO LEOPOLDO')
  and (v.ano<>2010)
essa query só retornara registros com essas 4 cidades e todos esses
registros, diferente de 2010...
--
Alysson Gonçalves de Azevedo
(11) 8491-7730

    \\   ^__^
      \\ (oo)\_______
        \(__)\             )\/
              ||`~~~~~´||
            _||'          _||


2010/1/27 Eduardo Bahiense <eduardo em icontroller.com.br>

> Andrei Luís escreveu:
>
>  Bom dia a todos,
>>
>> Estou montando um SQL e me surgiu uma dúvida quanto ao uso dos operadores
>> or
>> e and.
>>
>> Exemplo:
>>
>> 1) where (cid.cidade = 'NOVO HAMBURGO')
>>   or (cid.cidade = 'ESTANCIA VELHA')
>>   or (cid.cidade = 'CAMPO BOM')
>>   or (cid.cidade = 'SAO LEOPOLDO')
>> and (v.ano<>2010)
>>
>>
>> 2) where cid.cidade = 'NOVO HAMBURGO'
>>   or cid.cidade = 'ESTANCIA VELHA'
>>   or cid.cidade = 'CAMPO BOM'
>>   or cid.cidade = 'SAO LEOPOLDO'
>> and v.ano<>2010
>>
>>
>> 3) where (cid.cidade = 'NOVO HAMBURGO'
>>   or cid.cidade = 'ESTANCIA VELHA'
>>   or cid.cidade = 'CAMPO BOM'
>>   or cid.cidade = 'SAO LEOPOLDO')
>> and (v.ano<>2010)
>>
>>
>> Qual sentença traz o resultado correto? A 3?
>>
>>  Depende do que você espera como correto:
>
> Se o correto for qualquer uma das cidades passadas contanto que o ano seja
> diferente 2010, a 3 está correta.
>
> Observe que 1 e 2 são iguais, diferindo apenas no número de parênteses e
> retornarão qualquer cidade listada, mas trará TAMBÉM, qualquer outra em que
> v.ano for diferente de 2010.
>
> Eduardo
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista