>데이터 베이스 >MySQL 튜토리얼 >CASE 문을 사용하여 SQL의 데이터를 전치하는 방법은 무엇입니까?

CASE 문을 사용하여 SQL의 데이터를 전치하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-05 04:36:39726검색

How to Transpose Data in SQL Using CASE Statements?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.