Wybór funkcji jest możliwy w innych silnikach. Na przykład Oracle umożliwia napisanie funkcji, która zwraca tabelę typu zdefiniowanego przez użytkownika. Możesz zdefiniować zestawy wyników w funkcji, wypełnić je za pomocą zapytań, a nawet za pomocą kombinacji wyborów i kodu. Ostatecznie zestaw wyników może zostać zwrócony z funkcji i możesz kontynuować zapytanie, używając:
select * from table(FunctionToBeCalls(parameters));
Jedyną wadą jest to, że ten zestaw wyników nie jest indeksowany, więc może działać wolno, jeśli funkcja jest używana w złożonym zapytaniu.
W MySQL nic takiego nie jest możliwe. Nie ma możliwości użycia zestawu wyników z procedury bezpośrednio w zapytaniu wybierającym. Możesz zwrócić pojedyncze wartości z funkcji i możesz użyć OUT
lub INOUT
parametry do procedury, aby zwrócić wartości z. Ale całe zestawy wyników nie jest możliwe. Wypełnienie tymczasowej tabeli w ramach procedury jest najbliższe.