Funciones de tabla en SQL
RETURNS TABLE convierte la función en algo que puede ir en FROM.
-- RETURNS TABLE makes the function usable like a relation.
CREATE FUNCTION customer_orders(cust INTEGER)
RETURNS TABLE (order_no INTEGER, status TEXT, total NUMERIC)
LANGUAGE SQL
STABLE
BEGIN ATOMIC
SELECT id, status, total
FROM orders
WHERE customer_id = cust;
END;
SELECT *
FROM customer_orders(1)
ORDER BY order_no;
Cómo funciona
RETURNS TABLE (order_no INTEGER, ...)declara la forma del resultado.BEGIN ATOMIC ... ENDguarda un cuerpo SQL verificado — los typos fallan al crear.FROM customer_orders(1)la lee después como cualquier relación.
Palabras clave y builtins usados aquí
ATOMICBEGINBYCREATEENDFROMFUNCTIONINTEGERLANGUAGENUMERICORDERRETURNSSELECTSQLSTABLETABLETEXTWHERE
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 320
- Tokens
- 51
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 47 segundos.
Paso 3 de 4 en Funciones; paso 3 de 23 en Procedimientos almacenados de PostgreSQL.