Funcion que devuelva un campo de una tabla

30/11/2005 - 13:35 por nEk | Informe spam
Hola soy novato en esto y no me acaba de salir... estoy intentando hacer una
función que recibe un parametro en este caso un id de una tabla y me devuelva
un campo.
Lo que tengo hecho es lo siguiente:

CREATE FUNCTION prueba (@pid int) RETURN TABLE
AS
BEGIN
RETURN (SELECT
CASE when Subv.Subv1='Transferencia' then
Subv.Subv1
else
CASE when subv.subv2=subv.subv3 then
Subv.Subv1 + ' ' + LOWER(Subv.Subv3)
else
Subv.Subv1 + ' ' + LOWER(Subv.Subv2) + ' ' + LOWER(Subv.Subv3)
end
end
AS Subvencion
FROM Subv
WHERE idSubv=@pid)
END

Cuál seria la forma correcta?

Gracias x tu tiempo!
 

Leer las respuestas

#1 Alejandro Mesa
30/11/2005 - 15:07 | Informe spam
nEk,

No es mi intencion ofender con este comentario, pero cada vez que tengo que
dirigirme a alguna persona con estos alias me siento como estuviese hablando
con una pared. Por que sera que algunos tienden a esconder sus nombres?

Las funciones tipo tabla inline, no necesitan begin ... end para encerrar el
cuerpo de la funcion.

CREATE FUNCTION prueba (
@pid int
)
RETURN TABLE
AS
RETURN (
SELECT
CASE
when Subv.Subv1='Transferencia' then Subv.Subv1
when Subv.Subv2=Subv.Subv3 then Subv.Subv1 + ' ' + LOWER(Subv.Subv3)
else Subv.Subv1 + ' ' + LOWER(Subv.Subv2) + ' ' + LOWER(Subv.Subv3)
end AS Subvencion
FROM
dbo.Subv
WHERE
idSubv=@pid
)
go


AMB
"nEk" wrote:

Hola soy novato en esto y no me acaba de salir... estoy intentando hacer una
función que recibe un parametro en este caso un id de una tabla y me devuelva
un campo.
Lo que tengo hecho es lo siguiente:

CREATE FUNCTION prueba (@pid int) RETURN TABLE
AS
BEGIN
RETURN (SELECT
CASE when Subv.Subv1='Transferencia' then
Subv.Subv1
else
CASE when subv.subv2=subv.subv3 then
Subv.Subv1 + ' ' + LOWER(Subv.Subv3)
else
Subv.Subv1 + ' ' + LOWER(Subv.Subv2) + ' ' + LOWER(Subv.Subv3)
end
end
AS Subvencion
FROM Subv
WHERE idSubv=@pid)
END

Cuál seria la forma correcta?

Gracias x tu tiempo!

Preguntas similares