2010-07-14 2 views
1

Comment faire une instruction SELECT et renvoyer les colonnes de données au lieu des lignes?Récupérer les enregistrements de données SQL dans les colonnes au lieu des lignes

DE

+----+-------+--------+ 
| id | name | number | 
+----+-------+--------+ 
| 0 | test |  11 | 
| 1 | test2 |  12 | 
+----+-------+--------+ 

À

+----+------+--------+----+-------+--------+ 
| id | name | number | id | name | number | 
+----+------+--------+----+-------+--------+ 
| 0 | test |  11 | 1 | test2 |  12 | 
+----+------+--------+----+-------+--------+ 
+0

Reformater la question rendrait la réponse plus facile - je ne peux pas déchiffrer votre/de. –

+1

vous devriez repenser votre algorithme, car sa solution n'est pas évolutive. et vous ne réalisez rien de mieux que la sélection normale avec une boucle. –

+0

Dobiatowski, je n'ai pas le choix parce que j'essaie de fournir les données dans une énorme base de données qui se trouve dans la structure pour laquelle je demande les données. Donc, en récupérant les données comme ça à partir de sql, je peux facilement le transmettre à mon DataGrid. Plus d'infos sur mon objectif ici: http://stackoverflow.com/questions/3249771/feeding-dynamic-xml-data-to-dynamic-advanced-datagrid – user391986

Répondre

1

pobably vous recherchez cette fonction:

mysql> SELECT student_name, 
    ->  GROUP_CONCAT(test_score) 
    ->  FROM student 
    ->  GROUP BY student_name; 

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

+0

fantastique! En utilisant group_concat, je serai capable de faire ce que je veux. Je vous remercie! – user391986

+0

Je suis content :) demandez si vous voulez plus d'informations. –

+0

C'est super merci encore. Un problème mineur avec cela est que j'ai lu dans les docs qu'il ignorait et n'affichait pas de valeurs nulles avec GROUP_CONCAT, êtes-vous conscient d'un moyen d'empêcher ce comportement à des valeurs nulles? – user391986

2

Consulter 'tableau croisé dynamique' dans les fichiers d'aide pour votre moteur de base de données.

0

Tu ne veux vraiment pas faire cela dans SQL - je ne suis même pas sûr que tout SGBD décent permettrait une telle chose !

+0

@Mike mais avec MySQL vous pouvez seulement émuler le pivot. EDIT: euhmm, Mike a disparu. –

Questions connexes