집 >데이터 베이스 >MySQL 튜토리얼 >CASE 문을 사용하여 SQL의 데이터를 전치하는 방법은 무엇입니까?
Case 문을 사용하여 SQL 테이블의 데이터 전치
SQL에서 데이터 전치란 행과 열이 바뀌는 데이터 세트를 변환하는 것을 의미합니다. 제공된 것과 유사한 구조를 가진 테이블을 바꾸려면:
Id | UserId | FieldName | FieldValue |
---|---|---|---|
1 | 100 | Username | John Doe |
2 | 100 | Password | pass123! |
3 | 102 | Username | Jane |
4 | 102 | Password | $ecret |
5 | 102 | Email Address | [email protected] |
바뀐 형식으로:
UserId | Username | Password | Email Address |
---|---|---|---|
100 | John Doe | pass123! | |
102 | Jane | $ecret | [email protected] |
한 가지 접근 방식은 group by 절과 함께 여러 CASE 문을 사용하는 것입니다.
SELECT t.userid MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username, MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password, MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email FROM TABLE t GROUP BY t.userid
이 쿼리는 각 사용자 및 필드 조합의 최대값을 계산합니다. CASE 문은 FieldName 필드의 값을 기반으로 반환할 필드 값을 정의합니다.
그러나 이 방법을 사용하려면 각 특정 필드 이름에 대해 CASE 문을 정의해야 합니다. 동적 솔루션의 경우 MySQL의 준비된 명령문(동적 SQL) 구문을 사용하여 쿼리를 생성하는 것이 좋습니다.
위 내용은 CASE 문을 사용하여 SQL의 데이터를 전치하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!