2016-08-04 5 views
0

У меня есть таблица, которая выглядит следующим образом:Использование «SELECT» для отображения сгруппированных результата

Name | Type 
Maurice | Gold 
Lisa | Gold 
Andrew | Silver 
Matthew | Platinum 
Sarah | Gold 
Peter | Platinum 
Franco | Platinum 
Patrick | Silver 

Я пытался с помощью «выбрать», чтобы отобразить их сгруппированы по типу, но я не нашел ни одного правильно. В результате я выгляжу так:

Silver | Gold | Platinum 
Andrew | Maurice | Matthew 
Patrick | Lisa | Peter 
NULL  | Sarah | Franco 

В любом случае, чтобы результат выглядел так? Спасибо!

+0

выбрать * из 'table_name' группы по типу; – Rupsingh

+0

, чтобы получить имя группы, вы можете попробовать как это [select group_field from table_name group by group_field]. Примечание. «Тип» - это ключевое слово, измените имя вашего поля с «type» на какое-то другое имя. – IRSHAD

+0

Вы ищете операцию, называемую * поворот * таблицы. Это печально известная боль в области шеи в MySQL. –

ответ

0
select (case when type='Silver' then name end) as silver, 
     (case when type='Gold' then name end) as gold, 
     (case when type='Platinum' then name end) as platinum 
from table_name 
+0

спасибо, это выглядит хорошо, но появилось так много нулей есть ли способ удалить нуль? – Koltira

+0

Добро пожаловать в переполнение стека! Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, так как это уменьшает читаемость кода и объяснений! – FrankerZ