1)Czy function może zwrócić rekord - wiem że procedure może i że jest to łatwe do zrobienia, ale z tego co zauważyłem wywołana poprzez SELECT funkcja zachowuje się jak zwyczajny SELECT przez co mozna ją wcisnąć w innego SELECTA jako unię, czy podzapytanie sprawdzające
2)Czy wewnątrz procedury lub funkcji mogę stworzyć zapytanie do bazy jako tekst, a potem je wywołać - np w tym zapytaniu duzym jest warunek (i on sie powtarza) pobierania wartości z określonej kolumny, o czym dcyduje jakiś parametr czyli
CASE tabela WHEN 1 THEN (SELECT kolumna From tabela1 WHERE warunek) WHEN 2 THEN (SELECT kolumna From tabela2 WHERE warunek) WHEN 4 THEN (SELECT kolumna From tabela3 WHERE warunek) itd END
i zamiast tego tworzę funkcje, która najpierw na podstawie parametrów tworzy zaptanie jako tekst - a potem jest on wywoływany (coś jak w PHP, gdzie zapytanie jest tekstem, który można dowolnie modelowac, a potem wysłać do bazy)
dzięki temu znacznie uprościła by się sprawa utrzymania zapytania, jego sprawdzania i ewentualnej rozbudowy