[SQL] 고유 식별자로 조회 결과의 행을 결합?
SQL고유 식별자로 조회 결과의 행을 결합?
나는 쿼리가 그 여러 테이블을 통해 검색 및 반환 쿼리 테이블 중 하나의 하나 개의 특정 컬럼의 모든 값에 대해 하나의 행. 테이블은 하나의 고유 식별자에 대한 여러 행을 반환합니다. 내가 뭘 원하는 쉼표로 그 같은 고유 식별자를 가지고 열의 값이 결합 행 분리를 결합하고 고유 컬럼으로 그 값을 반환합니다.
예:
Museum MuseumID Country City Paintings Sculptures
Louvre 345 France Paris Mona Lisa NULL
Louvre 345 France Paris NULL Venus De Milo
Louvre 345 France Paris Ship of Fools NULL
대신에 나는 쿼리가이 작업을 수행하고 싶습니다 :
Museum MuseumID Country City Art
Louvre 345 France Paris Mona Lisa, Venus De Milo, Ship of Fools
나는 C # 프로그램에서 사용할 수있는 저장 프로 시저에이 쿼리를 설정해야합니다. 처음 엔에 불과하고 사용 C 번호는 배열과 약간의 논리를 사용하여 행을 결합으로 데이터를했다하지만 데이터가 이미 분류와 결합 된 C # 프로그램에 와서 만드는 대신 저장 프로 시저를해야한다. 내가해야 할 내가 원하지 않습니다. 나는 도움이 필요합니다.
이와 캔 사람의 도움?
해결법
-
==============================
1.
DECLARE @a TABLE ( Museum VARCHAR(32), MuseumID INT, Country VARCHAR(32), City VARCHAR(32), Paintings VARCHAR(32), Sculptures VARCHAR(32) ); INSERT @a VALUES ('Louvre',345,'France','Paris', 'Mona Lisa', NULL), ('Louvre',345,'France','Paris', NULL, 'Venus De Milo'), ('Louvre',345,'France','Paris', 'Ship of Fools', NULL); SELECT DISTINCT Museum, MuseumID, Country, City, Art = STUFF((SELECT ', ' + COALESCE(Paintings, Sculptures, '') FROM @a AS a2 WHERE a2.museum = a.museum AND a2.MuseumID = a.MuseumID AND a2.Country = a.Country AND a2.City = a.City FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1,2,'') FROM @a AS a;
-
==============================
2.이에 따라 당신은 유착을 사용해야합니다.
이에 따라 당신은 유착을 사용해야합니다.
내가 먼저 다음과 GROUP BY MuseumID에 유착를 사용하여 (첫 번째 질의에서) OneArt라는 하나 개의 컬럼에 그림과 조각 열을 결합한다.
from https://stackoverflow.com/questions/9472986/combining-rows-of-queried-results-by-unique-identifier by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 created_at 및 하이브에서 타임 스탬프 updated_at를 기록하는? (0) | 2020.07.15 |
---|---|
[SQL] 자바 : 왜 ResultSet의 직렬화하지? (0) | 2020.07.15 |
[SQL] TSQL : 어떻게 주어진 날짜 범위 사이의 각 달의 마지막 날짜를 검색 (0) | 2020.07.15 |
[SQL] 전체는 MS 액세스에 가입 (0) | 2020.07.15 |
[SQL] 어떻게 하루에 1 개 이상의 레코드를 선택하려면? (0) | 2020.07.15 |