[firebase-br] função ou procedure para usar na cláusula WHERE de SELECTS

Matheus Guerra matheus.oliveira.guerra em gmail.com
Ter Jun 5 10:33:01 -03 2018


Bom dia.
Na cláusula where você pode fazer um sub select na procedure.
SELECT * from t1, t2
WHERE (select nomedocampo
              from myComparaData(t1.dtcadast,t1.dtalter,  t2.dtcadast,
t2.dtalter)) = ’T’;
Mas prefiro migrar para o firebird 3.0 e usar function.
Att,
Matheus Guerra

Em 5 de junho de 2018 10:23, Sofia Bonato de Moraes - EES
<sbonato em ees.com.br> escreveu:
> Bom dia Pessoal,
>
> Existe alguma forma de, no firebird 2.5 eu criar uma função ou procedure que
> eu possa utilizar na clausula WHERE?
>
> Eu utilizo stored procedures e já li sobre as selectable procedures.  Porém
> nenhuma das duas atende ao que eu preciso.
>
> E em relação a funções, li que existem external functions, mas também não
> sei se se tratam do que eu preciso.
>
> Exemplificando, teria uma função do tipo (não estou utilizando sintaxes
> corretas.  Só exemplificando a necessidade):
>
>
>
> FUNCTION myComparaData(D1, D2, D3, D4) RETURNS (CHAR(1))
>
> DECLARE VARIABLE D1 TIMESTAMP
>
> DECLARE VARIABLE D2 TIMESTAMP
>
>
>
> D1=IIF (D2 IS NULL, D1,D2)
>
> D2=IIF (D4 IS NULL, D3,D4)
>
>
>
> IF D1>D2 RETURNS ‘T’;
>
> ELSE RETURNS ‘F’
>
>
>
> ***************************
>
> E utilizaria no select mais ou menos assim:
>
> SELECT * from t1, t2
>
> WHERE myComparaData(t1.dtcadast,t1.dtalter,  t2.dtcadast, t2.dtalter)=’T’
>
>
>
> Eu faço isto no MySQL, mas no Firebird não estou encontrando como...
>
> Agradeço a ajuda
>
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista