[SQL] 결과 세트의 값을 반복하는 방송 블랭크
SQL결과 세트의 값을 반복하는 방송 블랭크
아래의 쿼리에서 o.EventSetName, o.EventSetDisplay, o.EventSetDescription을 위해 - 언제든지 결과의 3 열은 중복 행이 - 첫 번째와 같은 행이 표시와 중복 행의 나머지 부분에 대한 비어 있어야합니다 ... ..
여기에 SQL은 다음과 같습니다
Select distinct top 100000 o.EventSetName,
o.EventSetDisplay,
o.EventSetDescription,
o.ChildSetName,
ROW_NUMBER() Over (Order By f.ChildSetName) RN,
f.DocumentDispSequence,
f.SectionDispSequence,
o.ObsSetDispSequence,
null
From ##ObsSetLevel o,
##Final f
Where f.ChildSetName = o.EventSetName and
o.EventSetName = @variableName
Order By RN asc, f.DocumentDispSequence asc, f.SectionDispSequence asc, o.ObsSetDispSequence asc
지금보고 로직 요구의 많은이 저장된 프로 시저 자체에서 할 수 할 수 있도록보고 도구를 가지고 있겠지 ...
그래서 대신 :
val 1 val2 val3 val7
val 1 val2 val3 val8
val 1 val2 val3 val 10
val 1 val2 val3 x
val 1 val2 val3 y
나는 행의 처음 3 열에 공백으로 결과를 얻을 2,3,4 5한다
해결법
-
==============================
1.값의 각 그룹에 대해 RN들을 만들 것이다 열,에 의해 ROW_NUMBER OVER 파티션을 추가 CTE에서 기존 쿼리를 감 쌉니다. 외부 쿼리에서 어디서 GRP_RN = 1, 빈 문자열이 다른 값을 선택 CASE를 사용합니다.
값의 각 그룹에 대해 RN들을 만들 것이다 열,에 의해 ROW_NUMBER OVER 파티션을 추가 CTE에서 기존 쿼리를 감 쌉니다. 외부 쿼리에서 어디서 GRP_RN = 1, 빈 문자열이 다른 값을 선택 CASE를 사용합니다.
WITH CTE AS ( Select distinct top 100000 o.EventSetName, o.EventSetDisplay, o.EventSetDescription, o.ChildSetName, ROW_NUMBER() Over (Order By f.ChildSetName) RN, f.DocumentDispSequence, f.SectionDispSequence, o.ObsSetDispSequence, null as NullColumnNeedsName, ROW_NUMBER() OVER (PARTITION BY o.EventSetName, o.EventSetDisplay,o.EventSetDescription ORDER BY f.ChildSetName) GRP_RN From ##ObsSetLevel o, INNER JOIN ##Final f ON f.ChildSetName = o.EventSetName and o.EventSetName = @variableName ) SELECT CASE WHEN GRP_RN = 1 THEN o.EventSetName ELSE '' AS EventSetName, CASE WHEN GRP_RN = 1 THEN o.EventSetDisplay ELSE '' AS EventSetDisplay, CASE WHEN GRP_RN = 1 THEN o.EventSetDescription ELSE '' AS EventSetDescription, other columns FROM CTE Order By RN asc, DocumentDispSequence asc, SectionDispSequence asc, o.ObsSetDispSequence asc
PS : 나는 또한 이전 스타일의 사용 조인을 수정했다. 그 사용은 SQL-92 표준의 도입으로 20 년 전 구식이된다. 당신이 그들을 사용하지 않아야합니다.
from https://stackoverflow.com/questions/18767504/shows-blanks-for-repeating-values-in-a-result-set by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 기본 키 값과 외래 키하지 채우기 (0) | 2020.05.17 |
---|---|
[SQL] SELECT 유형의 쿼리는 해당이 중첩 될 수 있습니다 유형? (0) | 2020.05.17 |
[SQL] 오라클 10 로컬 임시 테이블 (저장 프로 시저의 범위에 대한) (0) | 2020.05.17 |
[SQL] MySQL의 동적 열 이름을 선택하는 방법 (0) | 2020.05.17 |
[SQL] 날짜 시간에 대한 SSIS 소스 형식 암시 적 변환 (0) | 2020.05.17 |