#1 Mon 13 January 2020 11:15
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Réordonner les colonnes en SQL
Bonjour à tous,
Sur Postgre, j'aimerais pouvoir réordonner plusieurs colonnes en une seule afin de pouvoir faire des analyses dessus.
Admettons une BDD comme ceci :
Code:
PRENOM TYPE1 TYPE2 TYPE3 JULIE CHIEN CHAT PONEY FRED MOUTON CHEVAL OCEANE DOUDOUNE CHAUSSURE
Je souhaiterais le transformer en ceci :
Code:
PRENOM TYPE JULIE CHIEN JULIE CHAT JULIE PONEY FRED MOUTON FRED CHEVAL OCEANE DOUDOUNE OCEANE CHAUSSURE
Est-il possible de le faire en SQL ? Merci
Hors ligne
#2 Mon 13 January 2020 11:48
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 96
Re: Réordonner les colonnes en SQL
Bonjour,
Il y a peut-être plus simple mais voici une solution :
Code:
SELECT "PRENOM", unnest(ARRAY["TYPE1", "TYPE2", "TYPE3"]) as TYPE FROM MA_TABLE
Hors ligne
#3 Mon 13 January 2020 14:43
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: Réordonner les colonnes en SQL
Un grand merci
Hors ligne
#4 Mon 13 January 2020 14:47
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: Réordonner les colonnes en SQL
Est-il possible d'inverser le processus ?
De passer de
Code:
PRENOM TYPE JULIE CHIEN JULIE CHAT JULIE PONEY FRED MOUTON FRED CHEVAL OCEANE DOUDOUNE OCEANE CHAUSSURE
à
Code:
PRENOM TYPE1 TYPE2 TYPE3 JULIE CHIEN CHAT PONEY FRED MOUTON CHEVAL OCEANE DOUDOUNE CHAUSSURE
Merci
Hors ligne
#5 Mon 13 January 2020 15:10
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 96
Re: Réordonner les colonnes en SQL
Je le verrais bien comme ça :
Code:
SELECT "PRENOM", type_arr[1], type_arr[2],type_arr[3] FROM (SELECT "PRENOM", array_agg("TYPE") as type_arr FROM MA_TABLE GROUP BY "PRENOM") t1
Hors ligne
#6 Mon 13 January 2020 15:38
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Re: Réordonner les colonnes en SQL
Cela marche super. Merci beaucoup
Hors ligne