ProgramacionSql
Enviado por Juanjo Alecor • 3 de Octubre de 2015 • Apuntes • 1.103 Palabras (5 Páginas) • 143 Visitas
CREATE OR REPLACE function suma_y_producto(IN x INT, IN y INT, OUT suma INT,OUT prod INT) AS $$
declare
begin
suma=x + y;
prod=x * y;
end;
$$ language plpgsql;
-----------------------------------------------------------------------------
-- ESTRUCTURA IF ELSE.
CREATE OR REPLACE function lt(X INT, y INT)returns boolean AS $$
declare
begin
IF x < y THEN
return true;
else
return false;
END IF;
end;
$$ language plpgsql;
----------------------------------------------------------------------------
--Clasificacion notas,
CREATE OR REPLACE function clasificacion_notas (nota INT)returns varchar AS $$
begin
IF (nota >=0 and nota < 5) THEN return 'Suspenso';
ELSEIF (nota >=5 and nota < 7) THEN return 'Bien';
ELSEIF (nota >=7 and nota < 9) THEN return 'Notable';
ELSEIF (nota >=9 and nota < 10) THEN return 'Sobresaliente';
ELSEIF (nota = 10) THEN return 'Matricula';
END IF;
end;
$$ language plpgsql;
--------------------------------------------------------------------------
Clasificacion notas usuario CASE
CREATE OR REPLACE function clasificacion_notas_CASE (nota float)returns varchar AS $$
begin
CASE
WHEN(nota >=0 and nota < 5) THEN return 'Suspenso';
WHEN (nota >=5 and nota < 7) THEN return 'Bien';
WHEN (nota >=7 and nota < 9) THEN return 'Notable';
WHEN (nota >=9 and nota < 10) THEN return 'Sobresaliente';
WHEN (nota = 10) THEN return 'Matricula';
END CASE;
EXCEPTION
WHEN CASE_NOT_FOUND THEN (cuando se produce una excepcion captura el error y da el mensaje)
RAISER 'Nota erronea';
end;
$$ language plpgsql
------------------------------------------------------------------------
Loop Basico
CREATE OR REPLACE FUNCTION basic_loop ()returns void AS $$
begin
FOR i IN 1..100 LOOP
RAISE NOTICE 'valor%',i;
END LOOP;
end;
$$ language plpgsql;
-------------------------------------------------------------------------
Crear una tabla; insertar valores y decir si son pares.
CREATE OR REPLACE function paridad_v0 ()returns void AS $$
DECLARE
descripcion varchar;
BEGIN
CREATE TABLE IF NOT EXISTS paridad(
valor INT,
descripcion varchar
);
TRUNCATE paridad;
FOR i IN 1..100 LOOP
IF i % 2=0 THEN
descripcion = || ' es par';
ELSE
descripcion = || ' es impar';
END IF;
INSERT INTO paridad VALUES (i,descripcion);
...