Ok pessoal, fiz alguns testes é assim mesmo que se comporta, o compilador nesse 
caso (AND) não faz a outra comparação, se aprimeira retorna false a segunda não 
é executada.
Obrigado a todos;

Ola Irineu,
Em um WHERE a ordem de execução é do final do comando para o inicío, nesse seu 
caso a primeira condição a ser executada seria CAST(nome AS INTEGER) = 0 e 
depois cod = 2, em clausulas WHERE deixo as mais restritivas no final do 
comando, não sei se é uma regra mas o Oracle também trabalha desta forma.

> From: "Irineu Raymundo" <[email protected]>
> Subject: [pgbr-geral] RES:  Comando IF
> To: "'Comunidade PostgreSQL Brasileira'"
>       <[email protected]>
> Message-ID: <[email protected]>
> Content-Type: text/plain;     charset="iso-8859-1"
> 
> Pode-se dizer que tmb nas condicoes WHERE de um SQL ele se comporta igual? 
> 
> CREATE TABLE teste (cod INTEGER, nome VARCHAR(10));
> INSERT INTO teste VALUES(1,'teste');
> SELECT * FROM teste WHERE cod = 2 AND CAST(nome AS INTEGER) = 0;
> 
> Sds,
> Irineu.
> 
> 
> > -----Mensagem original-----
> > De: [email protected] [mailto:pgbr-geral-
> > [email protected]] Em nome de Pedro Espíndola
> > Enviada em: segunda-feira, 10 de maio de 2010 14:16
> > Para: Comunidade PostgreSQL Brasileira
> > Assunto: Re: [pgbr-geral] Comando IF
> > 
> > Os compiladores são inteligentes de forma a não gastar energia atoa,
> > como trata-se de uma condição do tipo AND, em q todas as condições
> > devem ser satisfeitas, com certeza a primeira condição não sendo
> > satisfeita, o restante é desprezado não necessitando ser testado.
> > 
> > Abs
> > Pedro
> > 
> > 2010/5/10 Ricardo <[email protected]>:
> > > Em 04/05/2010 13:29, rogeriogrando escreveu:
> > >> Ola pessoal, estou com seguinte duvida, (Postgres 8.3.5).
> > >> Tenho a seguinte restrição.
> > >>
> > >> IF ((x = 0) AND (y = 0)) AND (z = 0) THEN
> > >> END IF;
> > >>
> > >> Se a primeira restrição ((x = 0) AND (y = 0)) não é satisfeita o
> > banco mesmo assim faz a segunda (z = 0)?
> > >>
> > > Até onde eu sei o banco avalia todos os testes, independentemente, da
> > > falha e algum dos testes.
> > >
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a