Eu tenho uma função A
e uma função B
.
O nome da função A
é f_a()
e o código é:
Select id,address from A;
B
O nome da função é f_b()
o código é:
Select C.address,B.name
From
(Select id,name from B,
(Select * from f_a()) as C
Where C.id = B.id;
No entanto, quando executo a select * from f_b()
mensagem de erro diz que C.id não existe. Como posso executar a função f_a()
dentro do f_b()
.
Acima das funções A e B estão as funções que retornam a tabela. Eu omiti a função head and end.
Sua sintaxe é distorcida de várias maneiras. Se o tipo de retorno da função
A
for definido comoRETURNS TABLE (id int, address text)
, poderia funcionar assim:À parte: embora seus identificadores pareçam adequados para o propósito, eu uso estritamente identificadores legais em minúsculas para evitar complicações .