SELECT
    *
FROM
    veiculo
WHERE
    SUBSTR(chassi,1,8) iLike 'JYARJ071%' AND
    SUBSTR(chassi,12,6)::INTEGER BETWEEN 301 AND 39486;

Desta forma não sairia o resultado desejado?

[]´s



2009/3/12 André Volpato <[email protected]>

> Rogério A Bassete escreveu:
>
>  Sim, é possível fazer tudo com uma ER. Agora, vale a pena?
> A verificação de intervalos em uma ER não é muito simples. Por ex.
> para validarmos o dia de uma data (de 01 a 31) a expressão seria:
> 0[1-9]|[12][0-9]|3[01]
> Para o intervalo 00301 a 39486 a expressão seria bastante grande o
> que, em minha opinião, acabaria prejudicando a legibilidade de sua
> sentença SQL.
>
>
> Entendo então, que a melhor forma seria como fiz mesmo?
>
> Rogério
>
>
> Creio que ER´s não vão agilizar a sua busca, além de torná-la ilegível para 
> manutenção.
>
> Outra saída é quebrar a parte numérica do chassi em outro campo:
>
> chassi
>
> XYARJ07125A024039
>
>
>
> chassi_1 (text)
>
> XYARJ07125A
>
>
>
> chassi_2 (numeric ou integer)
>
> 024039
>
> --
>
> []´s, ACV
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>


-- 
José de Mello Júnior
41.9957-2007
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a