IF y ELSIF en SQL
Un veredicto de inventario elegido recorriendo condiciones hasta la primera verdadera.
-- IF walks its conditions in order; the first true branch wins.
DO $$
DECLARE
vest_stock INTEGER;
verdict TEXT;
BEGIN
SELECT stock
INTO vest_stock
FROM products
WHERE sku = 'PFD-M';
IF vest_stock = 0 THEN
verdict := 'reorder now';
ELSIF vest_stock < 5 THEN
verdict := 'running low';
ELSE
verdict := 'plenty on the shelf';
END IF;
RAISE NOTICE 'vests: % (%)', verdict, vest_stock;
END;
$$;
Cómo funciona
IF vest_stock = 0 THENatiende primero el estante vacío.ELSIFencadena más pruebas sin anidar;ELSEatrapa el resto.- Toda la construcción cierra con
END IF, punto incluido.
Palabras clave y builtins usados aquí
BEGINDECLAREDOELSEELSIFENDFROMIFINTEGERINTOSELECTTEXTTHENWHERE
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 389
- Tokens
- 65
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 56 segundos.
Paso 3 de 4 en Bloques PL/pgSQL; paso 7 de 23 en Procedimientos almacenados de PostgreSQL.