저는 완전히 새로운 MySQL입니다. 여기에 mysql
에서 열 col1
을 해당 범주 (col2
)를 기반으로 4 개의 다른 열로 나눕니다 (아래 그림 참조). 나는 지금까지이 같은 쿼리를 작성했습니다 :이 코드는 나에게 네 개의 열을 제공하지만 더이를 필터링 할 수없는 나처럼 지금 붙어mysql의 열을 여러 열로 나눕니다.
select if(category = 'first',name ,NULL) as first,
if(category = 'second',name,NULL) as second,
if(category = 'third',name,NULL) as third,
if(category = 'fourth',name,NULL) as fourth
from 'table';
.
을 감안할 때 테이블 :
name category
John first
Sunil third
Jenny third
Ashley fourth
Meera second
Abhay first
필수 답 : 답의 모든 열이 분류되어
col1 col2 col3 col4
Abhay Meera Jenny Ashley
John NULL Sunil NULL
참고.
편집 : 궁금한 점은 최종 답변 형식이 명확하지 않은 것 같습니다. 지적 해 주셔서 감사합니다 @ philipxy. 최종 답변은 최소한 행 수 (이 경우 2)로 조정해야합니다. 모든 열의 수가 같은 수의 열이어야하며 일부 열의 값이 더 작은 경우 해당 행의 값은
NULL
입니다 (예 :col2
및col 4
).NULL
는 (있는 경우) 예컨대을 마지막에있을이 나타납니다 다음category
fourth
와Olly
라는 항목이 있었다 가정 할 경우 마지막으로 모든 열이 정렬 된 순서에 있어야col4
에서NULL
및Ashley
후 전에.
출력은 2 행만 필요하다고 가정합니까? 또는 원본 테이블의 행 수에 따라 더 많을 수 있습니까? – Yousaf
행이 더있을 수 있습니다. 여기에 한 가지 예가 나와 있습니다. –
왜이 작업을 수행하려고합니까? 이것은 테이블의 행에 값이 GUI 격자 인 것처럼 강제 실행됩니다. 당신은 아마 SQL 테이블에서 포맷하지 않아야합니다, 당신은 GUI에서 포맷해야합니다. "선택 t. *"이 무엇인지 모르는 것을 고려하십시오. 당신은 거의 확실하게 당신이 요구하는 결과를 원하지 않습니다. – philipxy