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

Carlos H. Cantu listas em warmboot.com.br
Ter Jun 5 10:41:45 -03 2018


Procure por CASE e IIF:

https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/fblangref25.html

[]s
Carlos H. Cantu
eBook Guia de Migração para o FB 3 - www.firebase.com.br/guiafb3.php
www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br

SBdME> Bom dia Pessoal,

SBdME> Existe alguma forma de, no firebird 2.5 eu criar uma função ou procedure que
SBdME> eu possa utilizar na clausula WHERE?

SBdME> Eu utilizo stored procedures e já li sobre as selectable procedures.  Porém
SBdME> nenhuma das duas atende ao que eu preciso.

SBdME> E em relação a funções, li que existem external functions, mas também não
SBdME> sei se se tratam do que eu preciso.

SBdME> Exemplificando, teria uma função do tipo (não estou utilizando sintaxes
SBdME> corretas.  Só exemplificando a necessidade):

SBdME>  

SBdME> FUNCTION myComparaData(D1, D2, D3, D4) RETURNS (CHAR(1))

SBdME> DECLARE VARIABLE D1 TIMESTAMP

SBdME> DECLARE VARIABLE D2 TIMESTAMP

SBdME>  

SBdME> D1=IIF (D2 IS NULL, D1,D2)

SBdME> D2=IIF (D4 IS NULL, D3,D4)

SBdME>  

IF D1>>D2 RETURNS ‘T’;

SBdME> ELSE RETURNS ‘F’

SBdME>  

SBdME> ***************************

SBdME> E utilizaria no select mais ou menos assim:

SBdME> SELECT * from t1, t2

SBdME> WHERE myComparaData(t1.dtcadast,t1.dtalter,  t2.dtcadast, t2.dtalter)=’T’

SBdME>  

SBdME> Eu faço isto no MySQL, mas no Firebird não estou encontrando como...

SBdME> Agradeço a ajuda

SBdME>  

SBdME> ______________________________________________
SBdME> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
SBdME> Para saber como gerenciar/excluir seu cadastro na lista, use:
SBdME> http://www.firebase.com.br/fb/artigo.php?id=1107
SBdME> Para consultar mensagens antigas:
SBdME> http://www.firebase.com.br/pesquisa_lista.html





Mais detalhes sobre a lista de discussão lista