C'est du postgresql mais ça doit être la même
Résolu/Fermé
edilecachan
Messages postés
87
Date d'inscription
dimanche 1 janvier 2012
Statut
Membre
Dernière intervention
26 juin 2023
-
Modifié par jee pee le 30/03/2013 à 11:32
edilecachan Messages postés 87 Date d'inscription dimanche 1 janvier 2012 Statut Membre Dernière intervention 26 juin 2023 - 30 mars 2013 à 00:00
edilecachan Messages postés 87 Date d'inscription dimanche 1 janvier 2012 Statut Membre Dernière intervention 26 juin 2023 - 30 mars 2013 à 00:00
A voir également:
- Prerunscript.command.line.error postgresql
- Navicat for PostgreSQL - Télécharger - Gestion de données
- Probleme de connexion avec Postgresql ✓ - Forum PostgreSQL
- Load data infile postgresql - Forum Programmation
- DBConvert for Access & PostgreSQL - Télécharger - Gestion de données
- Script shell avec SQL (postgresql) ✓ - Forum Shell
1 réponse
edilecachan
Messages postés
87
Date d'inscription
dimanche 1 janvier 2012
Statut
Membre
Dernière intervention
26 juin 2023
3
30 mars 2013 à 00:00
30 mars 2013 à 00:00
Alléluia mes frères,
En continuant mes recherches sur google, j'ai ouvert une une page de PostGreSQL sur une note de release concernant la 8.4, j'ai trouvé quelques mots clefs, qui, mis bout à bout donne le résultat attendu. Je vous la livre :
WITH tab_role as (select RANK() OVER (w) AS rang_role, refval as role
from refvalues
where reftabid = (select tabid from tables where tabradical = 'Rol')
WINDOW w AS (PARTITION BY reftabid ORDER BY refpos asc))
select tab_role.rang_role, tab_role.role
from tab_role
where tab_role.role = 'POUET'
RESULTAT (on note le n et on se souvient religieusement du 1)
*---------------*---------------*
! NoRole ! Role !
*---------------*---------------*
! n ! POUET !
*---------------*---------------*
Il semblerait que le WITH force le gestionnaire à créer un tableau de travail en vue de sa réutilisation à répétition dans la requête qui suit.
Le RANK, lui, assure la numérotation.
Le WINDOW fait le découpage de la table refvalues sur la valeur refval triée sur refpos
Grâce au WITH, on échappe à ce qu'ILS appellent le SQLoptimiser (je me marre, AH AH AH !!!)
En continuant mes recherches sur google, j'ai ouvert une une page de PostGreSQL sur une note de release concernant la 8.4, j'ai trouvé quelques mots clefs, qui, mis bout à bout donne le résultat attendu. Je vous la livre :
WITH tab_role as (select RANK() OVER (w) AS rang_role, refval as role
from refvalues
where reftabid = (select tabid from tables where tabradical = 'Rol')
WINDOW w AS (PARTITION BY reftabid ORDER BY refpos asc))
select tab_role.rang_role, tab_role.role
from tab_role
where tab_role.role = 'POUET'
RESULTAT (on note le n et on se souvient religieusement du 1)
*---------------*---------------*
! NoRole ! Role !
*---------------*---------------*
! n ! POUET !
*---------------*---------------*
Il semblerait que le WITH force le gestionnaire à créer un tableau de travail en vue de sa réutilisation à répétition dans la requête qui suit.
Le RANK, lui, assure la numérotation.
Le WINDOW fait le découpage de la table refvalues sur la valeur refval triée sur refpos
Grâce au WITH, on échappe à ce qu'ILS appellent le SQLoptimiser (je me marre, AH AH AH !!!)