J'ai une partie d'une instruction SELECT
qui est un ensemble assez long d'instructions conditionnelles. Je veux le mettre dans une fonction afin que je puisse l'appeler beaucoup plus efficacement sur n'importe quelle table dont j'ai besoin pour l'utiliser.Comment placer une partie d'une instruction SELECT dans une fonction Postgres
Ainsi, au lieu de:
SELECT
itemnumber,
itemname,
base,
CASE
WHEN labor < 100 AND overhead < .20 THEN
WHEN .....
WHEN .....
WHEN .....
.....
END AS add_cost,
gpm
FROM items1;
je peux faire:
SELECT
itemnumber,
itemname,
base,
calc_add_cost(),
gpm
FROM items1;
Est-il possible d'ajouter une partie d'un SELECT
à une fonction de sorte que puisse être injecté juste en appelant la fonction?
Je suis en train de trier la documentation et Google, et il semble qu'il pourrait être possible de créer la fonction dans le langage plpgsql
par opposition à sql
. Cependant, ce que je lis n'est pas très clair.
Vous avez besoin d'une procédure stockée pour la déclaration de cas. Il suffit de google et votre problème sera résolu. –
@AnkitBajpai: Il n'y a pas de véritables "procédures stockées" dans Postgres. Juste des fonctions, faire presque mais pas tout à fait la même chose. (Et tout ce dont nous avons besoin ici est une fonction.) –
BTW, vous venez de fermer votre question connexe (https://stackoverflow.com/questions/46164931/pass-the-table-name-used-in-from-to-function -automatically-in-postgresql-9-6-3) - il y a * un * moyen d'utiliser les types de tables de variables en entrée - et de faire ressembler cela à une colonne générée. Si vous en avez toujours besoin, rouvrez cette autre question. –