Пожалуйста, помогите мне в преобразовании строк в столбцы, а не их дублировании. Я искал и применял способы сделать это, но я не могу удовлетворить свои требования.SQL Строки в столбцы
create table PROGRAMMER
(
PERSON varchar(15),
LANGUAGE varchar(20),
LEVELS varchar(15)
);
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('CARL', 'JAVA', 'SENIOR');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('CARL', 'PHP', 'MID');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('CARL', 'VB.NET', 'JUNIOR');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('GARY', 'C#', 'MID');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('GARY', 'VB.NET', 'MID');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('RALPH', 'PHP', 'SENIOR');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('RALPH', 'RUBY', 'JUNIOR');
insert into PROGRAMMER (PERSON, LANGUAGE, LEVELS) values ('RALPH', 'JAVASCRIPT', 'SENIOR');
Я хочу представить таблицу, как этого, используя «УРОВНЕЙ» в качестве столбца с несколько строк, имеющих тот же самый человек столько раз, сколько они имеют одинаковые уровни на разных языках. Остальные столбцы будут пустыми, если нет записи.
| PERSON | SENIOR | MID | JUNIOR |
----------------------------------------------
| CARL | JAVA | PHP | VB.NET |
| GARY | | C# | |
| GARY | | VB.NET | |
| RALPH | PHP | | RUBY |
| RALPH |JAVASCRIPT| | |
спасибо.
Строки и столбцы не являются взаимозаменяемый в SQL. Вы можете упорядочить строки с помощью 'ORDER BY', и вы не знаете их счет заранее. Вы можете указывать только порядок столбцов при записи запроса, и их количество известно во время записи запроса. Вероятно, вы должны полностью переосмыслить свой дизайн. –
Вы создаете столбец как платформу и вставляете как уровень? Оба ошибаются. У вас не может быть столбца с именем LEVEL. – SriniV
от этого я угадываю его на _pivot_? –