2017-05-23 8 views
-5

私は、次の結果を返したOracle SQLでクエリを書いた:のOracle SQL結果

accountName1 null 
null   hostName 
accountName2 null 
null   hostName 

代わりに、私はそのように見えるし、結果を希望:

accountName1 hostName 
accountName2 hostName 
+2

現在のクエリ、テーブル構造、および未加工データがない場合、y私たちがあなたを助けることができると期待していますか?同じ '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; 
関連する問題