SQLSERVER : Transformer listedans colonne en lignes

SQLSERVER : Transformer listedans colonne en lignes - SQL/NoSQL - Programmation

Marsh Posté le 25-01-2017 à 10:59:11    

Bonjour,
Sur du SQL Server, j'ai une table de cette sorte :
 
ID | LIBELLE | TYPES
1  | Nom1    | 1;
2  |Nom2     | 4;7;9;
3  |Nom3     | 3;2;
 
J'aimerai extraire cette table sous la forme  
ID | LIBELLE | TYPES
1  | Nom1    | 1
2  |Nom2     | 4
2  |Nom2     | 7
2  |Nom2     | 9
3  |Nom3     | 3
3  |Nom3     | 2
 
Une idée ?
 
Merci d'avance
 


---------------
Twitch || CS GO in my heart ;)
Reply

Marsh Posté le 25-01-2017 à 10:59:11   

Reply

Marsh Posté le 25-01-2017 à 15:06:44    

En natif (mais super récent genre SQL Server 2014 ou 2016 ?) Il y a la fonction STRING_SPLIT

 

Et sinon tu peux faire un truc comme ça : http://stackoverflow.com/a/5493616/461444
Vu que ça utilise une CTE ça doit demander au moins la version 2008 mais c'est natif


Message édité par TotalRecall le 25-01-2017 à 15:10:11

---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 26-01-2017 à 10:21:55    

Salut,
Du coup j'avais entre temps trouvé le lien que tu m'as donné.
Ca fonctionne très bien pour le coup.  
Je ne connaissais pas la possibilité d'utiliser with()... On progresse de jour en jour dans ce métier.


---------------
Twitch || CS GO in my heart ;)
Reply

Marsh Posté le 26-01-2017 à 10:50:08    

Ca s'appelle une CTE (common table expression). Basiquement ça sert à faire de la récursion, gérer des hiérarchies, ce genre de chose.
Mais ça peut vite filer mal à la tête.


Message édité par TotalRecall le 26-01-2017 à 10:50:37

---------------
Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed