2012-07-31 3 views
0

Я хотел бы преобразовать строку в столбец mySQL.MySQL переводит строки в столбец

У меня есть таблица с четырьмя поля

Excode SyID adno Mark 
IA1  1 2220 70 
IA1  1 2134 75 
IA1  3 2220 73 
IA1  3 2134 80 
IA2  1 2220 81 
IA2  1 2134 79 
IA2  3 2220 65 
IA2  3 2134 72 
..... 
..... 

«SyID» и «adno» будет оставаться в самой колонны и no.s уникального значения в «ExCode» должно быть увеличение в колонке, как следует

SyID adno IA1 IA2 ..... ...... ..... 
1 2220 70 81 ..... ...... ..... 
3 2220 73 65 ..... ...... ..... 
1 2134 75 79 ..... ...... ..... 
3 2134 80 72 ..... ...... ..... 
.. ...... ..... .... ..... ...... ..... 
.. ...... ..... .... ..... ...... ..... 

Прошу вас, руководствоваться. Благодарю Тебя.

+0

Почему ты хочешь это сделать? Я не уверен, что это можно сделать, используя только MySQL. Однако можно использовать язык программирования (возможно, PHP?) После того, как вы извлекли все значения из своей таблицы или представления. – Jocelyn

+0

Сколько стоит 'IA?' 'Excode'? – HeatfanJohn

+0

Я уже создал таблицу для вставки меток в соответствии с adno. Теперь я создал маркет из adno. Используя PHP, я думаю, что он будет использовать множество серверных ресурсов, так как есть много записей, – Bishu

ответ

3

Возможно, самое близкое к тому, что вы придете к «PIVOTing» нефиксированному количеству строк в одну строку в MySQL, использует функцию GROUP_CONCAT(). Это не будет точно получить вам все Excode с на отдельные столбцы, а как одну строку с разделителями:

SELECT SyID, 
     adno, 
     GROUP_CONCAT(CONCAT(Excode, ': ', Mark) SEPARATOR '/') AS ExcodeMarks 
FROM  tbl 
GROUP BY SyID, adno 

Это будет производить что-то похож к тому, что вы хотите:

SyID | adno | ExcodeMarks 
---------------------------------------------- 
1  | 2220 | IA1: 70/IA2: 81 
3  | 2220 | IA1: 73/IA2: 65 
1  | 2134 | IA1: 75/IA2: 79 
3  | 2134 | IA1: 80/IA2: 72 
+0

Спасибо за помощь. но мне нужна вся отметка в отдельном столбце, так что мне нужно выяснить, что такое верхний ряд для каждого класса, каждый предмет, раздел ученика и так далее. Есть ли возможность создать новый вид этого представления для получения нужного столбца. – Bishu

Смежные вопросы