Concatenação para consulta SQL
Colegas,
Tenho uma tabela com 5 ´entradas´ e ´saídas´ e as chamo de ENT1, SAI1... agora estou precisando fazer uma consulta individual, ou seja, conforme a situação, devo pesquisar por uma OU por outra ENT/SAI. Estou usando
a cláusula CASE que está funcionando, mas gostaria de algo mais dinâmico.
Tentei com concatenação mas também não funcionou. Ex.:
AUX=´ENT´ || :I; -- eu chamaria a variável no lugar do campo
Mas isto não funcionou. Preferiria usar algo tipo C++ se fosse possível.
select ent[i] -- aqui colocaria o número do período (1-5)
from ...
Alguém sabe se isto é viável? Eae Farias? Gandalf?
Obrigado aos amigos que têm me ajudado bastante...
Tenho uma tabela com 5 ´entradas´ e ´saídas´ e as chamo de ENT1, SAI1... agora estou precisando fazer uma consulta individual, ou seja, conforme a situação, devo pesquisar por uma OU por outra ENT/SAI. Estou usando
a cláusula CASE que está funcionando, mas gostaria de algo mais dinâmico.
Tentei com concatenação mas também não funcionou. Ex.:
AUX=´ENT´ || :I; -- eu chamaria a variável no lugar do campo
Mas isto não funcionou. Preferiria usar algo tipo C++ se fosse possível.
select ent[i] -- aqui colocaria o número do período (1-5)
from ...
Alguém sabe se isto é viável? Eae Farias? Gandalf?
Obrigado aos amigos que têm me ajudado bastante...
Adrinei
Curtidas 0
Respostas
Gandalf.nho
24/09/2005
Acho que a única maneira seria usando EXECUTE STATEMENT (se estiver usando FB 1.5), mas isso diminui a performance da consulta, daí fica ao teu critéri.o
GOSTEI 0
Beppe
24/09/2005
Tentei com concatenação mas também não funcionou. Ex.:
AUX=´ENT´ || :I; -- eu chamaria a variável no lugar do campo
Mas isto não funcionou. Preferiria usar algo tipo C++ se fosse possível.
select ent[i] -- aqui colocaria o número do período (1-5)
from ...
O FB suporta arrays, mas ninguém usa pq arrays, collections e campos duplicados não estão na FNF(primeira forma normal), se bem que sua tabela não está normalizada.
Pq não normaliza a tabela? Vc ganhará muito em expressividade. Veja:
select p.ent from ... inner join Periodo p on P.num = :i and p.chave_est = t.chave
GOSTEI 0