2016-11-08 4 views
1

모든 값이 쉼표로 구분 된 고유 한 열 대신에 여러 열에 concat_group에 의해 얻어진 값을 표시하는 방법에 대해 알고 계십니까? 당신은 SQL에서이 작업을 수행 할 수여러 열에 대해 CONCAT_GROUP과 같습니다.

+3

질문을 편집하고 샘플 데이터와 원하는 결과를 제공하십시오. 또한 사용중인 데이터베이스에 질문을 태그하십시오. –

+0

아마도 PIVOT을 찾고 있습니다. –

+0

어떤 DBMS를 사용하고 있습니까? 그리고 당신은'concat_group' 대신에'group_concat()'을 의미합니까? –

답변

1

:-) 사전에

감사합니다.

SQL의 고정 된 규칙 중 하나는 선택 목록의 열을 쿼리 준비시 설정해야한다는 것입니다. 선택 목록은 데이터를 검사 할 때 찾은 값과 일치하도록 동적으로 확장되지 않습니다.

이것은 관계형 모델에서 SQL의 출처에서 비롯된 것입니다. 관계 (관계이 아니라 많은 사람들이 이것을 잘못 이해합니다)는 고정 된 열 집합, 열의 이름과 데이터 형식을 정의하는 머리글 및 모든 행에있는 행 집합을 가진 데이터 구조입니다 헤더와 같은 열 세트.

SQL SELECT 문의 선택 목록은 효과적으로 해당 쿼리의 결과 집합으로 반환 된 관계 헤더를 정의합니다. 열의 수와 이름은 결과의 데이터가 아니라 조회에 의해 정의됩니다.

위의 주석 작성자는 피벗을 수행할지 묻는 있지만 피벗은 선택 목록에서 열의 이름을 지정해야합니다. 결과의 데이터에 따라 선택 목록을 증가시키는 SQL 피벗 쿼리와 같은 것은 없습니다.

+0

동적 쿼리는 어떻게됩니까? –

+0

내가 말했듯이 ** 준비를 할 때 정의 된 선택 목록의 모든 열을 가져야합니다 (**). 표현식을 선택 목록으로 연결하기 위해 코드에서 수행하는 작업은 준비 작업 전에 수행됩니다. –

관련 문제