2017-05-23 1 views
-5

SQL 결과 :오라클 나는 다음과 같은 결과를 반환 오라클 SQL에서 쿼리 작성했습니다

accountName1 null 
null   hostName 
accountName2 null 
null   hostName 

대신 내가 그렇게보고 결과를 싶습니다

accountName1 hostName 
accountName2 hostName 
+2

현재 쿼리, 테이블 구조 및 원시 데이터가 없으면 어떻게됩니까? 너를 도울 수있을 거라 기대하니? 동일한 'hostname'값이 실제로 항상 표시되는지, 아니면 서로 다른가? –

답변

1

이 가정을 하나 또는 다른 그 열 값은 항상 NULL이됩니다.

SELECT MAX(account_name) AS account_name, 
     MAX(host_name ) AS host_name 
FROM (
    SELECT t.*, 
     NVL2(
      account_name, 
      ROW_NUMBER() OVER (ORDER BY NVL2(account_name, ROWNUM, NULL) NULLS LAST), 
      ROW_NUMBER() OVER (ORDER BY NVL2(host_name, ROWNUM, NULL) NULLS LAST) 
     ) AS rn 
    FROM your_table t 
) 
GROUP BY rn; 
관련 문제