Отображать значение ячейки как имя столбца с помощью SQL - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть таблица, приведенная ниже в базе данных:

Name        Grade       Subject

Ami           HD         Java
Ami           D          C++
Bec           D          Java
Bec           P          C++

Можно ли отобразить его в формате, указанном ниже, только с использованием SQL:

Name       Java       C++

Ami        HD         D
Bec        D          P

Я очень старался, но не смог найти решение.

Спасибо.

1 Ответ

2 голосов
/ 21 декабря 2011

Попробуйте это:

SELECT
  Name, 
  MAX(CASE Subject WHEN 'C++'  THEN Grade END) 'C++',
  MAX(CASE Subject WHEN 'Java' THEN Grade END) 'Java'
FROM @test
GROUP BY Name;

Проблема с вашей таблицей заключается в том, что нет числового значения, с которым вы можете агрегировать столбцы, поэтому вы можете использовать Мин или Макс в качестве агрегата.Вы можете увидеть запрос в действии в Data Explorer здесь

...