반응형
마리아의 동적 피벗 열 이름에 공백이 있습니다.DB
여기 아주 간단한 예가 있습니다.
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'max(case when NAME = ''',
NAME,
''' then value end) AS ',
replace(NAME, ' ', '_')
)
) INTO @sql
FROM
sourcetable;
SET @sql = CONCAT('SELECT Date, ', @sql, ' from sourcetable group by date');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
전체 예: dbfidle
피벗 테이블의 열 이름이 이전에 NAME 열에 있었던 이름과 이전에 있었던 모든 문자와 정확히 일치했으면 합니다.이 프레젠테이션은 다른 시스템에서 사용되기 때문에 어떤 이유에서인지 필요합니다.
어떻게 해결해야 하나요?대체품 같은 거?
공백을 다음과 같은 밑줄로 대체하는 대신 별칭을 강조 그레이브로 마무리할 수 있습니다.
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT('MAX( CASE WHEN name = ''',NAME,''' THEN value END) AS `',NAME,'`')
)
INTO @sql
FROM sourcetable;
SET @sql = CONCAT('SELECT Date, ', @sql, ' FROM sourcetable GROUP BY date');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
언급URL : https://stackoverflow.com/questions/68162254/spaces-on-dynamic-pivot-column-name-in-mariadb
반응형
'programing' 카테고리의 다른 글
워드프레스:필터가 있는 보관 페이지가 작동하지 않음(ACF) (0) | 2023.06.12 |
---|---|
C: 부호 없는 피연산자에 대한 일항 빼기 연산자 동작 (0) | 2023.06.12 |
Firebase 호스팅에서 개인 환경 변수를 어떻게 설정합니까? (0) | 2023.06.12 |
SQL 덤프 파일에서 화살표를 통해 도커 내의 mysql 명령으로 입력을 전달할 수 없습니다. (0) | 2023.06.12 |
Firebase를 사용한 데이터베이스 스타일 쿼리 (0) | 2023.06.12 |