[SQL] 열 이름 피벗 해제
SQL열 이름 피벗 해제
나는 열 이름, 수학, 과학, 영어와 테이블 StudentMarks 있습니다. 데이터 같다
Name, Maths, Science, English
Tilak, 90, 40, 60
Raj, 30, 20, 10
나는 다음과 같은 배열 싶어 :
Name, Subject, Marks
Tilak, Maths, 90
Tilak, Science, 40
Tilak, English, 60
UNPIVOT으로 내가 원하는 결과 집합의 제목 열 소스 테이블의 열 이름을 얻을 수 제대로 마크,하지만 이름을 얻을 수 있어요.
이걸 어떻게 달성 할 수 있습니까?
지금까지 다음 쿼리에 도달했습니다 (이름을 얻기 위해, 마크)
select Name, Marks from studentmarks
Unpivot
(
Marks for details in (Maths, Science, English)
) as UnPvt
해결법
-
==============================
1.귀하의 질문은 매우 가까운 거리에 있습니다. 당신은 최종 선택 목록에서 주제를 포함하는 다음을 사용할 수 있어야합니다 :
귀하의 질문은 매우 가까운 거리에 있습니다. 당신은 최종 선택 목록에서 주제를 포함하는 다음을 사용할 수 있어야합니다 :
select u.name, u.subject, u.marks from student s unpivot ( marks for subject in (Maths, Science, English) ) u;
데모와 SQL 바이올린을 참조하십시오
-
==============================
2.또한 다음 코드를 사용하여 논리의 시퀀스를 사용하여 표준 SQL 않은 피벗 방법을 시도 할 수 있습니다 .. 다음 코드는 3 단계가 있습니다 :
또한 다음 코드를 사용하여 논리의 시퀀스를 사용하여 표준 SQL 않은 피벗 방법을 시도 할 수 있습니다 .. 다음 코드는 3 단계가 있습니다 :
-
==============================
3.학생 SELECT * FROM
학생 SELECT * FROM
UNPIVOT ((수학, 과학, 영어)의 주제에 대한 마크);
-
==============================
4.크로스 조인을 사용하여 주위에 또 다른 방법은 교차 가입 내부에 열 이름을 지정하는 것
크로스 조인을 사용하여 주위에 또 다른 방법은 교차 가입 내부에 열 이름을 지정하는 것
select name, Subject, Marks from studentmarks Cross Join ( values (Maths,'Maths'),(Science,'Science'),(English,'English') ) un(Marks, Subject) where marks is not null;
from https://stackoverflow.com/questions/19055902/unpivot-with-column-name by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PHP는 mysqli 준비된 문장 LIKE (0) | 2020.03.11 |
---|---|
[SQL] 쿼리 문자열에서 숫자 만 얻을 수 있습니다 (0) | 2020.03.11 |
[SQL] LINQ 도구에 SQL이 [마감] (0) | 2020.03.11 |
[SQL] 일 / 월 / 년 BY MySQL의 쿼리 GROUP (0) | 2020.03.11 |
[SQL] 어떻게 PostgreSQL을에 삽입 성능을 향상하기 (0) | 2020.03.11 |