137 - Funciones con valores de tabla en línea |
Trabajamos con la tabla "libros" de una librería.
Eliminamos la tabla si existe y la creamos con la siguiente estructura:
if object_id('libros') is not null
drop table libros;
create table libros(
codigo int identity,
titulo varchar(40),
autor varchar(30),
editorial varchar(20)
);
Ingresamos algunos registros:
insert into libros values('Uno','Richard Bach','Planeta');
insert into libros values('El aleph','Borges','Emece');
insert into libros values('Ilusiones','Richard Bach','Planeta');
insert into libros values('Aprenda PHP','Mario Molina','Nuevo siglo');
insert into libros values('Matematica estas ahi','Paenza','Nuevo siglo');
Eliminamos, si existe la función "f_libros":
if object_id('f_libros') is not null
drop function f_libros;
Creamos una función con valores de tabla en línea que recibe un valor de autor como parámetro:
create function f_libros (@autor varchar(30)='Borges') returns table as return ( select titulo,editorial from libros where autor like '%'+@autor+'%' );
Llamamos a la función creada anteriormente enviando un autor:
select *from f_libros('Bach');
Eliminamos, si existe la función "f_libros_autoreditorial":
if object_id('f_libros_autoreditorial') is not null
drop function f_libros_autoreditorial;
Creamos una función con valores de tabla en línea que recibe dos parámetros:
create function f_libros_autoreditorial (@autor varchar(30)='Borges', @editorial varchar(20)='Emece') returns table as return ( select titulo,autor,editorial from libros where autor like '%'+@autor+'%' and editorial like '%'+@editorial+'%' );
Llamamos a la función creada anteriormente:
select *from f_libros_autoreditorial('','Nuevo siglo');
Llamamos a la función creada anteriormente enviando "default" para que tome los valores por defecto:
select *from f_libros_autoreditorial(default,default);