Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous
j'ai un petit problème.
dans une table j'ai plusieurs lignes avec une colonne département,
et je veux ajouter un colonne code composé ( unique ) qui sera composé de la concaténation du code departement et d'une sequence.
par exemple
75-1
75-2
75-3
...
59-1
59-2
59-3
est il possible de le faire avec des sequences ( sans créer 90 sequences, 1e pour chaque département )
ou faut il faire appel à des fonctionnalités plus poussées
Merci d'avance
Hors ligne
Le plus simple est certainement la séquence. Je ne vois pas d'autres méthodes s'il s'agit de donner cette valeur sans avoir à la recalculer à partir des valeurs déjà données.
Guillaume.
Hors ligne
mais pour ça il faut créer plusieurs sequence ou une seule ?
y a t il une façon de le faire sous forme d'une boucle ?
Hors ligne
mais pour ça il faut créer plusieurs sequence ou une seule ?
Une par département à priori, d'après votre exemple.
y a t il une façon de le faire sous forme d'une boucle ?
Va falloir donner plus de détails pour répondre à cette question.
Guillaume.
Hors ligne
Une sequence par département, avec 90 departement
c'est un peu trop à saisie manuellement
pour la boucle, est ce qu'il y a possibilité de créer les séquences à partir d'une requête
un peu comme
create sequence 'seq_'||(select dep from dep) ;
Hors ligne
Vous devez utiliser une procédure stockée pour ça (ou une fonction anonyme si vous êtes en postgres >=9.0).
Julien.
https://rjuju.github.io/
Hors ligne
une procédure stocké.
merci pour la réponse,
voilà, il est temps de pousser l'apprentissage et commencer à apprendre le PL/pgSQL
Hors ligne
En PostgreSQL moderne (>=8.4) on peut utiliser row_number() plutôt que des séquences ou du code:
select departement||'-'||row_number() over ( partition by departement) FROM ....
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
merci dverite
ça marche très bien, je dois consacrer plus de temps aux fonctions window pour mieux les appréhender
Hors ligne
Pages : 1