Esta función que creamos nos retorna una tabla, luego esta la podríamos utiliza como otra tabla e invocarla en el FROM de algún select.
Este ejemplo retorna todos los usuarios «hijos» del usuario consultado, pero bien podría funcionar con otro tipo de consulta mas elaborada.
CREATE FUNCTION FN_TEC_TraerUsuariosRelaciones(
@nom_usuario_padre as varchar(100))
RETURNS TABLE
AS
RETURN (
SELECT distinct
hijo.name as «NombreHijo»,
hijo.edad as «EdadaHijo»
FROM
t_usuarios padre,
t_usuarios hijo
WHERE
padre.nombre = coalesce(@nom_usuario_padre,padre.nombre)
)
@nom_usuario_padre as varchar(100))
RETURNS TABLE
AS
RETURN (
SELECT distinct
hijo.name as «NombreHijo»,
hijo.edad as «EdadaHijo»
FROM
t_usuarios padre,
t_usuarios hijo
WHERE
padre.nombre = coalesce(@nom_usuario_padre,padre.nombre)
)
Luego en otra consulta podriamos invocar esta función de la siguiente forma:
Select * from FN_TEC_TraerUsuariosRelaciones(«Carlos»)