[firebase-br] Select IN

Sandro Souza escovadordebits em gmail.com
Seg Maio 25 15:10:04 -03 2009


Bom dia/tarde Mantovani.

Grande Mantovani, para essa situação específica, você pode criar uma stored
procedure que lhe retorne uma "tabela virtual" que pode ser utilizada em um
SELECT como você deseja.

Nessa situação de ser um intervalo fechado de valores, você poderia utilizar
o operador BETWEEN, ou seja, o seguinte exemplo:

SELECT  *
FROM     TABELA
WHERE   CAMPO IN (   SELECT COLUMN_VALUE
                                   FROM
TABLE(cast(c5_ComplexIn.c5InTable('1,2,3,4 ATE 10000') as c5InStrTable)))
Poderia se tornar:

SELECT * FROM TABELA WHERE CAMPO BETWEEN 1 AND 10000

Veja se você pode utilizar operadores simples para filtrar. Caso necessite
realmente de uma stored procedure para isso, então posso lhe ajudar se você
especificar o que você informará e o que deseja que seja retornado.

Espero ter ajudado mais que atrapalhado. :D

2009/5/25 Mantovani <daniloatm em gmail.com>

> Boa tarde Pessoal,
>
> Já fiz essa pergunta anteriormente, mas não obtive resposta. Acho q como
> estava no topido do Jhosef Marks muitos não viram.
>
> Bom, vamos lá, gostaria de saber se existe algum limite com relação
> a qtde de informações dentro de um IN. Ex  IN (1,2,3,4 ATÉ 10000). No
> Oracle
> se não me engano, existe uma limitação, então eu tenho uma UDF, que pega o
> conteudo dentro do parentes e insere em uma tabela temporaria.
>
> Exemplo Oracle:
> SELECT  *
> FROM     TABELA
> WHERE   CAMPO IN (   SELECT COLUMN_VALUE
>                                    FROM
> TABLE(cast(c5_ComplexIn.c5InTable('1,2,3,4 ATE 10000') as c5InStrTable)))
>
> Gostaria de saber como tratar isto no firebird, se ja existe alguma udf
> para
> fazer isso. Estou usando firebird 2.5.
>
> Desde já Agradeço.
> Mantovani.
>
>
>
>
>
> ______________________________________________
> 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